免密码登录
首先创建本机的公钥和私钥, 使用命令 SSH-keygen.
- # 输入命令后可以一直回车到结束
- root:~/.SSH$ SSH-keygen
- Generating public/private rsa key pair.
- Enter file in which to save the key (/root/.SSH/id_rsa):
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /root/.SSH/id_rsa.
- Your public key has been saved in /root/.SSH/id_rsa.pub.
- The key fingerprint is:
- SHA256:BaeNYqnL228zyzj8PZUfGfW0vqg4aW6dLoTSQ7AsFF4 root@Ubuntu
- The key's randomart image is:
- +---[RSA 2048]----+
| ..E . . |
| .... . * o|
- | ... * o o oo|
- | . = o . ...|
- | o o S ..o |
| . o + . o o. |
- | o.. o o......|
- | ooo+Boo ... |
- | . o=O*=+. |
- +----[SHA256]-----+
默认生成的公钥名为 id_rsa.pub , 私钥名为 id_rsa. 当然也可以通过参数 -t 来指定名称, 如: SSH-keygen -t rsa. 可以使用 ls ~/.SSH 命令来查看生成的公钥和私钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
如果希望 SSH 公钥生效需满足至少下面两个条件:
1. SSH 目录的权限必须是 700
2. SSH/authorized_keys 文件权限必须是 600
使用 SSH-copy-id < 主机地址 > 来将公钥添加到目的主机, 这里可以使用 -i < 公钥地址 > 来指定使用本机的那个公钥, 如:-i ~/.SSH/id_rsa.pub .
$ SSH-copy-id root@192.168.1.111 -i ~/.SSH/id_rsa.pub
或者直接登录到目标主机, 把自己的 id_rsa.pub 内容粘贴到 .SSH/authorized_keys 文件中. 若目标主机的不存在 .SSH 目录或者不存在 authorized_keys 文件则手动进行创建.
别名登录
使用 VIM ~/.SSH/config 命令编辑文件, 添加如下内容:
- #HOST 别名
- #hostname 服务器
- #user 用户名
- #IdentityFile 本机私钥 #可选
- #IdentitiesOnly yes #可选
- #-------------------------
- Host server1
- hostname 192.168.1.11
- Port 22
- user root
- IdentityFile ~/.SSH/id_rsa
- IdentitiesOnly yes
- Host server2
- hostname 192.168.1.22
- Port 22
- user root
- IdentityFile ~/.SSH/id_rsa
- IdentitiesOnly yes
使用 SSH <Host> 登录目的主机, 这里使用 SSH server1 就相当于执行 SSH root@192.168.1.11.
来源: http://www.jianshu.com/p/7734ec488b98