一、测试环境
- 两台centos7
- 主机名为hk,做客户端A
- 主机名为cloud,做服务器B
注:本测试A连B,不需要密码,但是B连A,需要密码
二、A生成密钥对
ssh-keygen
全部默认即可,因为我之前已经生成过密钥对,这里提示是否重写 上面那条命令执行完会生成id_rsa 和id_rsa.pub 两个文件
三、将公钥复制到B上
1.方法一 如果当前启用了密码验证,那么将公钥传输到远程主机的最简单方法是使用 ssh-copy-id 命令。如果您使用密钥的默认名称,您只需指定远程用户和主机
ssh-copy-id B的IP
2.方法二 使用scp 命令
scp /root/.ssh/id_rsa.pub B的ip:/root/.ssh/
这里也是要输入B的密码 然后连接上B,将刚刚从A那传过来的公钥追加到authorized_keys 文件中 3.方法三 将A中的公钥先拖到本机,再从本机拖去B,然后追加到authorized_keys 文件中
四、A无密码连接B
五、给B配置别名
这个做法是配置多台服务器的时候设置的,前提是前面的步骤已经完成,连接用别名才能生效。 1.方法一 config文件要自己新建
[root@hk ~]
Host h1
HostName B的IP
User root
Port 22
IdentityFile ~/.ssh/id_rsa
Host h2
HostName C的IP
User root
Port 22
IdentityFile ~/.ssh/id_rsa
:wq 保存之后,再次ssh连接就可以使用别名了 2.方法二 修改用户的bash配置,添加别名
[root@hk ~]
alias h1='ssh B的地址'
顺便发下自己的bash配置
六、如果想要安全
如果您需要更改私钥上的密码,或者如果您最初设置了一个空密码并希望在以后获得保护,请使用带有 -p 选项的 ssh-keygen 命令
$ ssh-keygen -p
Enter file in which the key is (/home/training/.ssh/id_rsa):
Key has comment 'training@example.com'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
- 在命令行上指定的任何密码都将保存在您的 shell 历史记录中
- 虽然公钥本身是要共享的,但请记住,如果有人获得了您的私钥,他们就可以使用它来访问所有拥有公钥的系统
|