ssh常用配置
本文最后更新于:September 12, 2020 am
本文主要记录了一些Linux系统下使用ssh指令的技巧和ssh的config文件简化ssh操作的过程。
1、设置权限
一般来说,每个用户都会在对应的家目录下生成一个.ssh
文件夹,如tinychen
用户则为/home/tinychen/.ssh
,而root
用户则为/root/.ssh
。如果是手动创建的.ssh
文件夹,还需要注意权限问题。一般来说.ssh
文件夹的权限为700,私钥为600,公钥为644。
1 |
|
2、指定密钥
对于密钥而言,一个用户可能会有多个密钥,如果需要在建立ssh连接的时候需要指定某个密钥可以使用-i
参数
1 |
|
3、指定端口
如果ssh服务器的端口不是默认的22端口,则在连接的时候需要使用-p
参数手动指定端口
1 |
|
4、多路复用
多路复用这个功能并不算是罕见的新功能,对于ssh也可以实现ssh连接的多路复用,即在和一台主机建立ssh连接之后,再次与这台主机建立连接的时候直接复用已有的ssh连接,就不需要再重复进行密码验证等各种操作,这种操作在ssh里面称之为ControlMaster
。配置的方法很简单,我们只需要在每个用户对应的~/.ssh/
目录下面新建一个config
文件,再添加对应的配置:
1 |
|
5、代理转发
ssh中的代理转发功能,名为agent forwarding
,主要作用如下:
假设当前有两台服务器A和B,你从自己的电脑远程登录到服务器A,这时候想直接在服务器A上面登录到服务器B,但是服务器A上面没有能够登录到服务器B的key,此时只要开启代理转发功能,将自己电脑的key跟随ssh过程一起发送到服务器A,就可以从服务器A登录到服务器B了。
如何验证自己的配置是否生效呢?我们可以通过ssh-add -L
命令来查看当前主机所拥有的key。
1 |
|
6、保持连接
有些ssh服务端为了安全,在一定的时间内没有接收到来自客户端的操作,就会主动断开连接。想要延长这个时间我们可以设置客户端每隔一段时间就向服务器发送数据包来保持连接:
1 |
|
同样地,我们也可以在服务器端添加相关的配置,一般都是在/etc/ssh/sshd_config
文件中
1 |
|
其中ServerAliveInterval
和ClientAliveInterval
表示间隔时间,每隔60s发送一次;ServerAliveCountMax
和ClientAliveCountMax
则表示发送的最大次数,最多发送60次。即在服务器端和客户端之间没有操作的时候重复发送60次,一共60次*60秒共计1小时后断开连接。