on  It Road.com

检查确认

要验证一切是否按预期工作,只需将任何文件从 hostA scp 到 hostB。
不应提示我们输入传输密码。

# scp /tmp/testfile hostB:/tmp/testfile
testfile              100% |*|     0       00:00

配置从主机 A 到主机 B 的无密码 scp

  1. 主机 A:使用以下命令生成密钥对。
    接受默认文件名而不输入密码。
    如果要求输入 passphase,请按 Enter 两次。
# ssh-keygen -t rsa
  1. 上面的命令将在触发命令的用户的 $HOME/.ssh/* 下创建两个新文件(公共和私有 RSA 密钥)。
id_rsa ( Private Key)
id_rsa.pub ( Public Key)
  1. 为便于以后识别,建议将 id_rsa.pub 重命名为代表创建密钥的系统的唯一文件名,因为稍后我们将将此文件复制到要连接的其他主机 (hostB) .我们需要复制文件而不覆盖主机 B 的 id_rsa.pub 文件。
    例如,我的主机名是 hostA。
    因此,在主机 A 上:
# cd $HOME/.ssh
# mv id_rsa.pub id_rsa.pub-hostA
  1. 将本地公钥复制到远程主机(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 目录。

  1. 将我们唯一的公钥文件添加到公钥文件“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 ..
Solaris:如何自动化 scp 传输(使用无密码 ssh)

由于 Secured Copy (SCP) 是 Secure Shell (SSH) 可用工具套件的一部分,因此我们必须先配置无密码 SSH,然后才能将其用于 SCP。
针对已知主机的公钥对检查身份验证,而不是用户 ID 和密码。
成功将 SSH 配置为无需密码进行身份验证后,我们就可以使用带有安全副本的自动登录。

日期:2020-09-17 00:15:20 来源:oir作者:oir