on It Road.com
检查确认
要验证一切是否按预期工作,只需将任何文件从 hostA scp 到 hostB。
不应提示我们输入传输密码。
# scp /tmp/testfile hostB:/tmp/testfile testfile 100% |*| 0 00:00
配置从主机 A 到主机 B 的无密码 scp
- 主机 A:使用以下命令生成密钥对。
接受默认文件名而不输入密码。
如果要求输入 passphase,请按 Enter 两次。
# ssh-keygen -t rsa
- 上面的命令将在触发命令的用户的 $HOME/.ssh/* 下创建两个新文件(公共和私有 RSA 密钥)。
id_rsa ( Private Key) id_rsa.pub ( Public Key)
- 为便于以后识别,建议将 id_rsa.pub 重命名为代表创建密钥的系统的唯一文件名,因为稍后我们将将此文件复制到要连接的其他主机 (hostB) .我们需要复制文件而不覆盖主机 B 的 id_rsa.pub 文件。
例如,我的主机名是 hostA。
因此,在主机 A 上:
# cd $HOME/.ssh # mv id_rsa.pub id_rsa.pub-hostA
- 将本地公钥复制到远程主机(HostB):
# scp $HOME/.ssh/id_rsa.pub-hostA hostB:$HOME/.ssh/id_rsa.pub-hostA
如果这是我们第一次使用 ssh 连接到主机 B,我们将收到以下消息:
The authenticity of host 'hostB' can't be established. RSA key fingerprint in md5 is: 62:84:2f:30:0b:8e:5a:28:d4:79:0f:c1:ed:c3:ab:d2 Are you sure you want to continue connecting(yes/no)?yes Warning: Permanently added 'hostB,192.168.10.100' (RSA) to the list of known hosts.
我们只需要输入一次用户密码。
然后,该文件将被复制到主机 B 的 .ssh 目录。
- 将我们唯一的公钥文件添加到公钥文件“authorized_keys”中,该文件会在 hostB 的 .ssh 目录中创建 authorized_keys 文件,如果它没有在下一步中自动创建。
例如,在 hostB 上:
# touch $HOME/.ssh/authorized_keys # cat $HOME/.ssh/id_rsa.pub-hostA >> $HOME/.ssh/authorized_keys
主机 B 的 .ssh 目录现在应如下所示:
-rw-r--r-- 1 admin admin 225 Aug 3 12:51 authorized_keys drwx------ 2 admin admin 512 Aug 3 12:51 . -rw-r--r-- 1 admin admin 225 Aug 3 12:44 id_rsa.pub-suntime -rw-r--r-- 1 admin admin 229 Aug 3 12:40 known_hosts -rw------- 1 admin admin 883 Aug 3 12:39 id_rsa -rw-r--r-- 1 admin admin 225 Aug 3 12:39 id_rsa.pub drwxr-xr-x 114 admin admin 7680 Aug 3 12:39 ..
由于 Secured Copy (SCP) 是 Secure Shell (SSH) 可用工具套件的一部分,因此我们必须先配置无密码 SSH,然后才能将其用于 SCP。
针对已知主机的公钥对检查身份验证,而不是用户 ID 和密码。
成功将 SSH 配置为无需密码进行身份验证后,我们就可以使用带有安全副本的自动登录。
日期:2020-09-17 00:15:20 来源:oir作者:oir