普通连接
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 | Host 197 |
配置很简单,四行分别表示别名、远程主机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 |
免密连接目的主机