SSH技巧总结

通过密钥连接服务器

生成密钥

  1. 在客户端电脑上输入以下指令生成rsa私钥和公钥

    ssh-keygen -t rsa -C "[email protected]"

    生成一对以你的邮箱为标签的密钥

  2. /.ssh/文件夹下的id_rsa为密钥文件,id_rsa.pub为公钥文件

在Linux服务器下添加密钥

  1. 在当前用户的主目录中的/.ssh/中添加或者修改authorized_keys文件,将刚刚客户端的id_rsa.pub内容复制到authorized_keys

关闭密码登入,并且只用RSA登入

  1. 编辑sshd_config文件

    vi /etc/ssh/sshd_config

  2. 禁用密码验证

    PasswordAuthentication的注释取消,并修改为

    PasswordAuthentication no

  3. 重启SSH服务

    注意,重启SSH服务之前建议保留一个会话,以免出现密码登入失败的情况

    • RHEL/CentOS系统

      sudo service sshd restart

    • Ubuntu系统

      sudo service ssh restart

常用的ssh config参数

建立前的配置

在建立连接的时候,如果是第一次对一个服务器建立连接,经常会问到我们是否信任对方,并且在第一次建立连接之后,如果同一个IP地址后的服务器有过重装,还会因为之前保存的证书而出现连接失败的情况。

因此可以在~/.ssh/config文件中添加以下配置

1
2
StrictHostKeyChecking no # 关闭主机公钥的确认信息,去掉了连接时候的提问,不过也因此有安全隐患,需要自己权衡
UserKnownHostsFile /dev/null # 在和某个主机建立连接以后,ssh就会将密钥存储在本地的一个known_hosts文件中,配置为/dev/null相当于不保存

连接服务器

同时,有的时候我们需要频繁访问同一个服务器,反复输入ssh [email protected]是很令人恼火的一件事(即使有的域名或历史记录)。这个时候我们就可以通过在config中添加一个Host来给我们需要的服务器添加一个简单易懂的别名来建立连接

1
2
3
Host router
User root
HostName 192.168.100.123

假设我们路由器的IP地址是192.168.100.123,那么我们就可以将原本的

1
ssh [email protected]

改为

1
ssh router

这样ssh就会使用root用户来登入192.168.100.123

X11窗口转发

对于一些有GUI的Linux系统来说,有的时候我们并不希望远程整个桌面,而是通过SSH来运行部分图形化的程序。在Windows当中,我们可以通过安装VcXsrv来提供一个SSH的转发接口,然后在~/.ssh/config中对应的服务器添加如下参数

1
2
3
4
5
Host study
User halc
HostName 192.168.100.101
ForwardX11 yes
ForwardX11Trusted yes

这样我们在和对应服务器建立连接以后,就可以通过在自己电脑上的cli运行远程服务器中带有GUI

多文件配置

在有的时候ssh需要连接的主机可能很多,放在一个文件里面可能会不便于管理。这个时候我们就可以通过Include关键字,来添加其他的config合并进来。

假设当前我们的.ssh目录的结构如下

1
2
3
4
5
6
7
8
~ [ tree .ssh                                                                                                          ] 1:40 PM
.ssh
├── authorized_keys
├── conf.d
│   └── home
├── config
├── id_rsa
└── id_rsa.pub

那么我们就可以在config当中添加Include conf.d/home来实现对于home文件的多文件配置涵盖。参考如下

1
2
3
4
5
6
7
8
9
10
11
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
GSSAPIAuthentication=no

Include conf.d/home

Host node1
User root
HostName xxx.xxx.xxx.xx

...

home当中就可以添加正常的ssh配置了


SSH技巧总结
https://halc.top/p/cff2e0b5
作者
HalcyonAzure
发布于
2021年4月19日
许可协议