赞
踩
- Public Key认证的主要魅力在于认证时承诺不必提供密码就能够同远程系统建立连接。
- Public Key认证的基础在于一对密钥,public key和private key,public key对数据进行加密而且只能用于加密,private key 只能对所匹配的public key加密过的数据进行解密。
- 我们把public key放在远程系统合适的位置,然后从本地开始进行ssh连接。
- 此时,远程的sshd会产生一个随机数并用我们产生的public key进行加密后发给本地,本地会用private key进行解密并把这个随机数发回给远程系统。
- 最后,远程系统的sshd会得出结论我们拥有匹配的private key允许我们登录。
# 查看 ssh 状态
systemctl status sshd
# 启动 ssh
systemctl start sshd
# 停止 ssh
systemctl stop sshd
CentOS7 默认使用RSA加密算法生成密钥对,保存在~/.ssh目录下的id_rsa(私钥)和id_rsa.pub(公钥)。也可以使用“-t DSA”参数指定为DSA算法,对应文件为id_dsa和id_dsa.pub,密钥对生成过程会提示输入私钥加密密码,可以直接回车不使用密码保护。
[root@localhost ~]# 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:/gGrlDJN5euMS5aai5feBkEI/0WjEnzPzx1xGtdkKG4 root@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ |.o.. o +o | | .o.oo . + +.. | | oo.o. .. B | | o..oo E | | ...oSo . | | .o +o+. | | ooB + . | | .oX.= . . | | .o=o=.o . | +----[SHA256]-----+ [root@localhost ~]# ls ~/.ssh/ id_rsa id_rsa.pub known_hosts [root@localhost ~]#
如果在上面生成秘钥后,执行 cd ~/.ssh 找不到 .ssh 目录,是因为没有使用 ssh 登录过,使用 ssh 登录一下即可生成 .ssh 目录,之后再重新执行 ssh-keygen 生成秘钥即可。
[root@localhost ~]# ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:DYd7538oOsqpIIDTs01C3G4S6PRE7msA91yUgk9Dzxk.
ECDSA key fingerprint is MD5:88:80:21:03:b2:52:6b:06:ff:c7:3b:d5:2d:47:c9:ad.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
root@localhost's password:
Last login: Fri Oct 26 16:15:57 2018 from localhost
[root@localhost ~]# ls ~/.ssh/
known_hosts
[root@localhost ~]# exit
登出
Connection to localhost closed.
[root@localhost ~]#
将 serverA ~/.ssh目录中的 id_rsa.pub 这个文件拷贝到你要登录的 serverB 的~/.ssh目录中
scp ~/.ssh/id_rsa.pub 192.168.0.101:~/.ssh/
然后在 serverB 运行以下命令来将公钥导入到~/.ssh/authorized_keys这个文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
另外要注意请务必要将服务器上
ssh 192.168.101
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。