Linux系统的远程管理工具有telnet、ssh、vnc等几种,其中ssh是最常用的管理方法,采用密文传输方式,简单安全。
基本用法
最简单的使用方法是在没有参数的情况下,只输入ssh来添加主机地址。 例如:
以ssh 192.168.0.116格式登录主机时,默认情况下使用当前用户登录。 第一次连接时,SSH验证目标主机的真实性,如果没有问题,输入yes即可。
有两种方法可以使用指定的用户名登录到主机。
a. 使用 -l 选项
sh-lwzq 192.168.0.116http://www.Sina.com /
shw zq @ 192.168.0.116http://www.Sina.com /
b. 使用 user@hostname 格式
SSH默认使用的端口号是22。 许多现代Linux系统有22个端口开放。 如果在不指定端口号的情况下运行ssh程序,则会直接从22个端口发送请求。
如果不想从22个端口登录,可以使用-p选项指定端口。
ssh 192.168.0.116 -p 1234辅助话题:如何修改端口号?
修改/etc/ssh/ssh_config,只需修改以下行:
Port 22 这两种方法,其中第二种尤为常用。
如果使用-C选项,则通过SSH发送和接收的所有数据都将被压缩,mldqz将被加密。
ssh -C 192.168.0.116但是,如果网络速度不是很快,此选项很有用,但是如果网络速度很快,使用压缩反而会降低效率,因此请根据需要使用。
指定端口登录
由于某种原因,您希望跟踪和调试已建立的SSH连接。 SSH提供的-v选项参数就是为此而设置的。 我知道在哪个阶段发生了问题。
对所有数据请求压缩
如果客户端有多个IP地址,则无法分辨使用哪个IP连接到SSH服务器。 要解决此问题,请使用-b选项指定IP地址。 此IP用作建立连接的源地址。
打开调试模式
如果要在目标主机上运行命令,则通常登录到目标主机并运行命令,然后退出。 当然可以这么做,但是很麻烦。
如果我们只是想远程执行一个命令,像下面这样,能直接从后面跟着命令就好了。
绑定源地址
另一个很棒的基于SSH的工具是sshfs。 sshfs允许直接在本地装载远程主机上的文件系统。 使用形式如下。
shfs-oid map=useruser @ hostname :/home/user~~/remote 3358 www.Sina.com /
shfs-oid map=user pi @ 192.168.0.1163360/home/pi~/pi此命令将远程主机上pi用户的主目录映射到本地主目录下的pi文件夹
不允许ssh登录的配置方法
修改vim /etc/sysconfig/sshd_config文件,并添加以下行: 授权用户解决方案,具体如下:
远程执行命令
servicesshdreload 3358 www.Sina.com /
1 .登录限制:/etc/ssh/sshd_config更改后需要重新启动: service sshd restart2.用户配置:/etc/passwd3. sudo权限:/etc/sudort
如果不知道如何在本文中介绍,很可能是分两个阶段进行操作:
步骤1 :使用ssh命令进入远程服务器
ssh user@remote-system步骤2 :使用CD命令切换到所需的目录
只需一个cd some-directory命令,即可快速访问服务器的指定目录
上述方式当然可以,但太低效了。 这样操作需要使用两个命令,但实际上,一个命令可以获得所需的效果。 例如,以下内容:
sh-TPI @ 192.168.0.116 ' CD/home/pi/tests; 此命令允许bash '直接访问草莓馅饼(远程服务器)上的相应目录(即/home/pi/tests )。 后面
其中,挂载远程文件系统,即使标准输入不是终端。 如果不添加,可能会有以下提示:
Pseudo-t
erminal will not be allocated because stdin除此之外,还可以使用下面这个命令:
ssh -t pi@192.168.0.116 'cd /home/pi/tests ; exec bash'或者:
ssh -t pi@192.168.0.116 'cd /home/pi/tests && exec bash -l'在这里,-l 选项将这个 bash 设置为登录 shell。
在上面的三条命令里,最后的参数都是 bash,是因为我的远程服务器默认的 shell 解释器是 bash 。如果你不知道你远程服务器所使用的 shell 解释器,可以使用以下命令:
ssh -t pi@192.168.0.116 'cd /home/pi/tests && exec $SHELL'一条命令远程执行服务器命令
正如本文开头所讲的,不仅可以使用一条命令进入到远程服务器指定目录,还可以使用一条命令远程执行服务器命令。甚至,我们还可以使用一条命令进入到远程服务器的指定目录,再执行一条命令。
其实所使用的方法都是一样的,比如想进入到树莓派的 /home/pi/tests 目录,再执行 ls -al 命令,可以这样输入命令:
ssh -t pi@192.168.0.116 ‘cd /home/pi/tests && ls -al && exec $SHELL’
执行的结果如下:
一个折中的方案
太长了不好敲,非要先进入到服务器,再 cd 到对应的目录。那么,可以修改远程服务器的 .bashrc 文件。
将你要执行的命令写zjdnht。比如在这个场景下,我们可以这样加:
cd /home/pi/tests >& /dev/null然后我们再执行 :wq 保存文件,再执行以下命令使更改生效:
source ~/.bashrc或者. ~/.bashrc但是,这个有个明显的弊端,就是我们只能进入到我们指定的目录,如果要换成其它目录,那只能再改 .bashrc 文件了。
链接 : https://mp.weixin.qq.com/s/e5rKYqxv_XwKceD17Sy6nQ