详解Linux下你所不知道的7个SSH命令用法

一个系统管理员可能会同时管理着多台服务器,这些服务器也许会放在不同的地方。要亲自一台一台的去访问来管理它们显然不是最好的方法,通过远程控制的方法应该是最有效的。

Linux系统的远程管理工具大概有几种:telnet,ssh,vnc等,其中ssh是最常用的管理方法,采用密文的传输方式,简单安全。

Secure Shell缩写是SSH, 由IETF的网络工作小组(Network Working Group)所制定,SSH是一项创建在应用层和传输层基础上的安全协议,为计算机的shell提供安全的传输和使用环境。

下面我们来介绍 SSH 的 7 大用法。

1. 基本用法

最简单的用法就是不带参数,仅输入 ssh 再加上主机地址,比如:

ssh 192.168.0.116

这种形式登陆主机,会默认使用当前用户进行登录。第一次连接的时候,SSH 会确认目标主机的真实性,如果没有问题的话,输入 yes 即可。

如果我们想要以指定用户名来登录主机,有两种方法:

a. 使用 -l 选项

ssh -l alvin 192.168.0.116

b. 使用 user@hostname 格式

ssh alvin@192.168.0.116

这两种方法,其中第二种尤为常用。

2. 指定端口登录

SSH 默认使用的端口号是 22。大多现代的 Linux 系统 22 端口都是开放的。如果你运行 ssh 程序而没有指定端口号,它直接就是通过 22 端口发送请求的。

如果我们不想通过 22 端口登录,那么我们可以使用 -p 选项来指定端口。

ssh 192.168.0.116 -p 1234

引申话题:如何修改端口号?

只需修改 /etc/ssh/ssh_config ,修改如下一行:

Port 22

3. 对所有数据请求压缩

使用 -C 选项,所有通过 SSH 发送或接收的数据将会被压缩,并且任然是加密的。

ssh -C 192.168.0.116

但是,这个选项在网速不是很快的时候比较有用,而当网速较快的时候,使用压缩反而会降低效率,所以要视情况使用。

4. 打开调试模式

因为某些原因,我们想要追踪调试我们建立的 SSH 连接情况。SSH 提供的 -v 选项参数正是为此而设的。其可以看到在哪个环节出了问题。

[Alvin.Alvin-computer] ➤ ssh -v pi@192.168.0.116
OpenSSH_7.1p2, OpenSSL 1.0.1g 7 Apr 2014
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to 192.168.0.116 [192.168.0.116] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4p1 Raspbian-10+deb9u4
debug1: match: OpenSSH_7.4p1 Raspbian-10+deb9u4 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 192.168.0.116:22 as 'pi'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received

5. 绑定源地址

如果你的客户端有多于两个以上的 IP 地址,你就不可能分得清楚在使用哪一个 IP 连接到 SSH 服务器。为了解决这种情况,我们可以使用 -b 选项来指定一个IP 地址。这个 IP 将会被使用做建立连接的源地址。

[Alvin.Alvin-computer] ➤ ssh -b 192.168.0.105 pi@192.168.0.116
Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l
​
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
​
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Feb 24 08:52:29 2019 from 192.168.0.105

6. 远程执行命令

如果我们想在目标主机执行一条命令,我们通常的做法是,先登录到目标主机,执行命令,再退出来。这样做当然是可以,但是比较麻烦。

如果我们仅仅是想远程执行一条命令,可以直接在后面跟上命令就好,如下:

[Alvin.Alvin-computer] ➤ ssh pi@192.168.0.116 ls -l
Desktop
Documents
Downloads
MagPi
Music

7. 挂载远程文件系统

另外一个很赞的基于 SSH 的工具叫 sshfs。 sshfs 可以让你在本地直接挂载远程主机的文件系统。它的使用格式如下:

sshfs -o idmap=user user@hostname:/home/user ~/Remote

比如:

sshfs -o idmap=user pi@192.168.0.116:/home/pi ~/Pi

以上所述是小编给大家介绍的Linux SSH命令详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • expect命令在linux下实现批量ssh免密

    有时候我们需要批量发送ssh命令给服务器,但是有可能有些服务器是新加入的,还没有配置ssh免密,这个时候就会提示我们输入yes/no 或者password等,expect脚本命令就是用于在提示这些的时候,自动为我们输入相应的文字. expect脚本 先看一段shell脚本,实现了ssh自动连接 #!/usr/bin/expect spawn ssh 192.168.1.241 expect "password" send "123456\r" expect &quo

  • 菜鸟学Linux命令:ssh命令(远程登录)

    1.查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号.使用ssh -V命令可以得到版本号.需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用OpenSSH: $ ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 下面的例子表明该系统正在使用SSH2: $ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-

  • 在PHP中运行Linux命令并启动SSH服务的例子

    升级 VPS 后,由于 Ubuntu 的 upstart 与 OpenVZ 的兼容问题,导致 sshd 服务不自动启动了,在尝试了 vePortal 的 console 与 file manager 及提交技术支持后都不能解决问题之后. 只能靠自己了,大概的思路是在 PHP 中进行 su 命令以执行 sshd 服务,因为 WordPress 还活着,并且可以在后台直接编辑主题相关的 PHP 脚本.只要把准备好的代码片断插入到 header.php 中,并在浏览器中访问一下主页即可. 相关的代码逻

  • Linux下sshd服务及服务管理命令详解

    sshd SSH为Secure Shell的缩写,是应用层的安全协议.SSH是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题. openssh-server 功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell 客户端连接方式 ssh 远程主机用户@远程主机ip 先rm -rf /root/.ssh/清掉之前的配置 ssh 远程主机用户@远程主机ip -X 调用远程主机图形工具 ssh 远程主机用户@远程主机ip

  • linux下ssh安装与scp命令使用详解

    ubuntu默认并没有安装ssh服务,可以通过如下命令进行: 复制代码 代码如下: yblin@yblin-desktop:~$ ssh localhost ssh: connect to host localhost port 22: Connection refused 如上所示则说明还没有安装ssh. 通过apt-get安装如下: 复制代码 代码如下: yblin@yblin-desktop:~$ sudo apt-get install openssh-server ssh默认端口是22

  • linux下使用ssh远程执行命令批量导出数据库到本地

    前天正在跟前端的同事调试功能.服务器开好,模拟的玩家登录好,就在倒计时.这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据.好吧,我看了一下时间,11:47.心想,跟前端调试完,去吃个饭再午休一下那就下午再给吧.没想对方来一句"就导个数据库而已,要这么久么?",而且还是直接跟我上司说的.我嚓,好吧,我导.可问题来了,平时的统计是由php做的,批量部署这些是由运维做的.服务端完全没有对应的工具.而且服务器是在阿里云上的,数据库的用户是限

  • Linux VPS下SSH常用命令整理

    目录操作:rm -rf mydir /*删除mydir目录*/cd mydir /*进入mydir目录*/cd - /*回上一级目录*/  cd .. /*回父目录,中间有空格*/cd ~ /*回根目录*/mv tools tool /*把tools目录改名为tool */ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/cp -a tool /home/vpser/www /*把tool目录下所有文件复

  • 详解Linux下你所不知道的7个SSH命令用法

    一个系统管理员可能会同时管理着多台服务器,这些服务器也许会放在不同的地方.要亲自一台一台的去访问来管理它们显然不是最好的方法,通过远程控制的方法应该是最有效的. Linux系统的远程管理工具大概有几种:telnet,ssh,vnc等,其中ssh是最常用的管理方法,采用密文的传输方式,简单安全. Secure Shell缩写是SSH, 由IETF的网络工作小组(Network Working Group)所制定,SSH是一项创建在应用层和传输层基础上的安全协议,为计算机的shell提供安全的传输和

  • 详解linux下tar压缩解压缩文件夹的命令与参数

    前言 tar在linux上是常用的打包.压缩.加压缩工具,他的参数很多,这篇文章仅仅列举常用的压缩与解压缩参数,下面直接先上三个常用命令,一起来看看吧 1.压缩当前目录下文件夹/文件test到test.tar.gz: tar -zcvf test.tar.gz test 2.解压缩当前目录下的file.tar.gz到file: tar -zxvf file.tar.gz 参数详解 五个命令中必选一个 -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原

  • 详解Linux 下开发微信小程序安装开发工具

    详解Linux 下开发微信小程序安装开发工具 1. git clone https://github.com/yuan1994/wechat_web_devtools 然后创建一个文件夹 mkdir /opt/tencent/ 移动文件 mv ./wechat_web_devtools /opt/tencent 修改用户组 chown -R root:root /opt/tencent/wechat_web_devtools 启动测试工具 /opt/tencent/wechat_web_devt

  • 详解Linux下读取位图的注意事项

    详解Linux下读取位图的注意事项 在Linux下读取位图遇到的问题,很好地体现了linux与Windows操作系统的不同.按理说位图格式与操作系统无关,读取也应该无关,实际上在位图读到内存中时已经不同.下面主要介绍自己在Linux下操作位图遇到的问题. (一).位图结构 位图一开始是两个结构体,包括位图的详细信息,是读取后面数据的关键.所以读取位图首先要正确读取这两个结构体:BITMAPFILEHEADER和BITMAPINFOHEADER.其具体定义为: typedef struct tag

  • 详解linux下利用crontab创建定时任务

    Linux下可以利用crontab创建定时任务. 常用搭配 crontab -e 编辑任务 crontab -l 查看所有任务[该用户] crontab -r 取消所有任务[该用户] 任务格式 × × × × × +命令(具体任务) 前5个参数表示时间,依次为: 参数 范围 分钟 0-59 小时 0-23 日期 1-31 月份 1-12 星期 0-6(0代表星期日) 特殊符号 为了精确表示定时,需要一些特殊符号来描述具体的任务执行时间.有以下几个符号: "/" 代表每,每隔多长时间 &

  • 详解Linux下的sudo及其配置文件/etc/sudoers的详细配置

    详解Linux下的sudo及其配置文件/etc/sudoers的详细配置 1.sudo介绍 sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的. 它的特性主要有这样几点: § sudo能够限制用户只在某台主机上运行某些命令. § sudo提供了丰富的日志,详细地记录了每个用

  • 详解Linux下调试器GDB的基本使用方法

    一.概述 GDB调试的三种方式: 1. 目标板直接使用GDB进行调试. 2. 目标板使用gdbserver,主机使用xxx-linux-gdb作为客户端. 3. 目标板使用ulimit -c unlimited,生成core文件:然后主机使用xxx-linux-gdb ./test ./core. 二.gdb调试 构造测试程序如下main.c和sum.c如下: main.c:#include <stdio.h> #include <stdlib.h> extern int sum(

  • 详解Linux下find查找文件命令和grep查找文件命令

    目录 一.find命令 1.按文件名 2.按文件类型查询 3.按照文件大小查找 4.按照文件日期查找 4.1按照创建日期查找 4.2按照修改日期查找 4.3按照访问日期查找 5.按深度查找 5.1查找起始点以下n层的目录,不超过n层 5.2搜距离起始点n层以下的目录(即最少n层) 6.高级查找 6.1-exec 6.2-ok 6.3管道方式 二.grep命令 三.grep和find命令结合使用 linux中一切皆文件的思想是重中之重,那么查找文件是学习Linux必须要掌握的技能. 一.find命

  • 详解Linux文本文件与WIN文本文件换行格式转换命令

    详解Linux文本文件与WIN文本文件换行格式转换命令 前言: 有 时在WIN下编辑好的脚本文件上传到LINUX服务器中不能正常执行,开始误认为是LINUX配置问题,后来发现,是WIN与LINUX存储文件时的换行 符标志不同造成的.在DOS使用的换行符为 ^M$,我们称为CR与LF两个符号.而在Linux中,则仅有LF ($) 这个换行符. 可以用如下命令完成格式转换:$dos2unix,$unix2dos.但这两个命令在UBUNTU发行版本中不存在,可通过: $sudo apt-get ins

  • 详解Linux下Tomcat开启查看GC信息

    一.开启GC日志 1.在Tomcat 的安装路径下,找到bin/catalina.sh 加上下面的配置,具体参数,自己配置: [root@centos7 tomcat]# vim bin/catalina.sh 复制代码 代码如下: JAVA_OPTS='-Xms512m -Xmx4096m -XX:PermSize=64M -XX:MaxNewSize=128m -XX:MaxPermSize=64m -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepG

随机推荐