您的位置:首页 > 运维架构 > Shell

ssh 避免每次都输入登陆密码

2014-05-29 10:32 134 查看
内部系统有几台服务器,经常登陆,但是每次使用SSH登陆过于麻烦,我们通过设置可以免去输入用户名和密码。

通过如下几步可以完成:

1.生成密钥

ssh-keygen

生成2个文件,位于~/.ssh/下,分别是公共密钥id_rsa.pub,和私有密钥id_rsa。

2.发送自己的公共密钥给服务器端

ssh-copy-id user@host

以上命令是给远程服务器发送自己的公共密钥,服务器端会要求输入密码。服务端拿到这个密钥后会在.ssh/下保存,文件名为authorized_keys;在mac平台下没有该命令,可以通过scp命令将公共密钥文件copy至服务端改名即可。

【注】解释访问过程:

在登陆服务端,无需输入密码,登陆过程如下:
客户端先将自己的公共密钥发送给服务器端存储起来
客户端发起登录请求,服务器端接受到后,发送一段随机的字符串给客户端
客户端接受该随机字符串后使用自己的私有密钥进行加密,然后发送给服务端
服务端接收后,使用存储的客户端公共密钥进行解密,解密成功,客户端即可登录,就无须输入密码

3.在本地配置config文件,位于~/ssh/config,在该文件加入如下几行配置:

host 11
HostName 192.168.1.11
User test1
host 10
HostName 192.168.1.10
User test1

那么我们登陆时,输入如下命令,无须用户名和密码,从此世界干净了许多

ssh 11
【注】:有时我们还需要指定私钥,例如
host 12
HostName 192.168.1.12
User test1
IdentityFile ~/.ssh/id_rsa
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssh shell 无密码 登录