ssh 是一种安全的网络协议,用于计算机之间的加密登陆。
正是由于这样的安全性,ssh协议被广泛地应用。

由于ssh是一种协议,所以就可能存在多种实现,比如 开源实现 OpenSSH, 和 windows 平台下的实现 PuTTY.

以下方法的详细步骤针对的是Linux 平台下的OpenSSH实现。

-----------------------------------------------------------------------------------------------------

以上所指的不需要口令认证的ssh登陆其实是使用公钥登陆。

概括来说需要这样的步骤:

1. 本机生成用于加密通信的公钥。

2. 将公钥上传给需要登陆的远程服务器。



首先本机要生成自己的公钥

$ ssh-keygen

随着一路默认的设置,在$HOME/.ssh 目录下会生成以下两个新文件:id_rsa.pub 和 id_rsa 
前一个文件是用来存储公钥,后一个是私钥。

其次将自己本机的公钥上传给远程需要登录的服务器

这里需要特别注意以下远程服务器端 ssh 配置目录下authorized_keys 文件。

如果是你的主机是Linux那就很简单,执行下面这条命令就可以了

$ ssh-copy-id user@host

user: 远程主机的ssh用户 
host:远程主机的host名

如果你的主机不幸没有这样的命令,那就使用以下命令:

$ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
user,host的含义同上。