SSH技巧总结
通过密钥连接服务器
生成密钥
在客户端电脑上输入以下指令生成rsa私钥和公钥
ssh-keygen -t rsa -C "[email protected]"
生成一对以你的邮箱为标签的密钥
在
/.ssh/
文件夹下的id_rsa
为密钥文件,id_rsa.pub
为公钥文件
在Linux服务器下添加密钥
- 在当前用户的主目录中的
/.ssh/
中添加或者修改authorized_keys
文件,将刚刚客户端的id_rsa.pub
内容复制到authorized_keys
中
关闭密码登入,并且只用RSA登入
编辑
sshd_config
文件vi /etc/ssh/sshd_config
禁用密码验证
将
PasswordAuthentication
的注释取消,并修改为PasswordAuthentication no
重启SSH服务
注意,重启SSH服务之前建议保留一个会话,以免出现密码登入失败的情况
RHEL/CentOS系统
sudo service sshd restart
Ubuntu系统
sudo service ssh restart
常用的ssh config参数
建立前的配置
在建立连接的时候,如果是第一次对一个服务器建立连接,经常会问到我们是否信任对方,并且在第一次建立连接之后,如果同一个IP地址后的服务器有过重装,还会因为之前保存的证书而出现连接失败的情况。
因此可以在~/.ssh/config
文件中添加以下配置
1 |
|
连接服务器
同时,有的时候我们需要频繁访问同一个服务器,反复输入ssh [email protected]
是很令人恼火的一件事(即使有的域名或历史记录)。这个时候我们就可以通过在config
中添加一个Host
来给我们需要的服务器添加一个简单易懂的别名来建立连接
1 |
|
假设我们路由器的IP地址是192.168.100.123
,那么我们就可以将原本的
1 |
|
改为
1 |
|
这样ssh
就会使用root
用户来登入192.168.100.123
了
X11窗口转发
对于一些有GUI的Linux系统来说,有的时候我们并不希望远程整个桌面,而是通过SSH来运行部分图形化的程序。在Windows
当中,我们可以通过安装VcXsrv
来提供一个SSH的转发接口,然后在~/.ssh/config
中对应的服务器添加如下参数
1 |
|
这样我们在和对应服务器建立连接以后,就可以通过在自己电脑上的cli
运行远程服务器中带有GUI
多文件配置
在有的时候ssh
需要连接的主机可能很多,放在一个文件里面可能会不便于管理。这个时候我们就可以通过Include
关键字,来添加其他的config
合并进来。
假设当前我们的.ssh
目录的结构如下
1 |
|
那么我们就可以在config
当中添加Include conf.d/home
来实现对于home
文件的多文件配置涵盖。参考如下
1 |
|
在home
当中就可以添加正常的ssh
配置了