SSH免密码登录服务器

说明

随着管理的服务器数量逐渐增多,而且每台服务器的管理密码都不一样,而且长度和复杂度是很难用脑记忆的,虽然写了一个简单的 Shell 可以实现不用输入 ssh user@host 进行登录,但最终还是无法避免的要输入密码。

解决方案

使用 ssky-keygen + ssh-copy-id 就可以实现免密码登录了。

安装ssh-copy-id

Mac 使用 Brew 安装

1
2

sudo brew install ssh-copy-id

生成公共密钥

1
2

ssh-keygen -t rsa #不需要密码,一路回车就行

把公共密钥添加到服务器

1
2

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

* 这里其实是把公钥添加到服务器的 .ssh/authorized_key 上

如果你的服务器端口不是默认的22,那么需要使用

1
2

ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"

这里会提示输入服务器密码

登录服务器

1
2

ssh user@server

你会发现登录已经不需要输入密码了

SSH 保持链接

client每隔60秒发送一次请求给server,然后server响应,从而保持连接

1
2

ssh -o ServerAliveInterval=60 user@server