0%

linux配置ssh免密登录

普通连接

1
ssh username@ip

username表示该机器的用户名,ip表示对应的ip地址。

别名连接

ip别名

可以在/etc/hosts文件给ip地址起别名,例如给172.16.10.198起别名为wch,添加下面一行:

1
172.16.10.198 wch

之后可以通过别名连接

1
ssh root@wch

特定主机用户别名

类unix系统(mac或者linux)可以直接编辑~/.ssh/config这个文件,如果没有,自己创建一个。语法如下

1
2
3
4
5
6
7
8
9
10
Host 197
HostName 172.16.10.197
Port 22
User root


Host 91
HostName 172.16.10.91
Port 22
User root

配置很简单,四行分别表示别名、远程主机ip、远程主机ssh端口、远程主机用户名。然后我们可以用

1
ssh 197

进行连接

免密登录

ssh还提供一种使用密匙验证的方式进行登录,百度百科上对其解释如下:

原理是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

也就是说,把本地公钥拷贝到远程服务器上,就不需要每次登录使用密码了。具体讲,是把本地~/.ssh/id_rsa.pub内的内容拷贝到远程~/.ssh/authorized_keys文件里。首先看看本地有没有公钥:

1
cat ~/.ssh/id_rsa.pub

没有,则生成一个

1
ssh-keygen -t rsa

之后将id_res.pub文件拷贝到需要免密登录的主机的~/.ssh/authorized_keys里面,也可以采用便捷操作:

1
ssh-copy-id host

添加完毕后,可以通过

1
ssh host

免密连接目的主机