没有密码提示的 SCP 使用不同的用户名

Roc*_*ley 3 linux users ssh scp

我有 2 台服务器,Server1并且Server2. 在Server1我有一个名为user1. 在Server2我有名为user2.

我需要能够编写一个脚本,上运行Server1,这将scp一些文件user2@Server2。有没有办法在不提示输入密码的情况下做到这一点?如有必要,我可以将密码放在配置文件或其他内容中。

user2@Server1顺便说一下,我无法创建用户。

dev*_*ull 21

您想要的是 ssh-key 对,它们创建允许无密码身份验证的“可信网络”:

在您的客户端 (server1) 上:

[user@server1]# ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): # Hit Enter
Enter passphrase (empty for no passphrase): # Hit Enter
Enter same passphrase again: # Hit Enter
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
Run Code Online (Sandbox Code Playgroud)

现在将您的公钥复制到您的远程服务器 (server2):

ssh-copy-id user2@server2
[OR]
cat ~/.ssh/id_rsa.pub | ssh user2@server2 "mkdir -p ~/.ssh \
    && cat >>  ~/.ssh/authorized_keys"
Run Code Online (Sandbox Code Playgroud)

现在,当您运行scp(或任何其他 ssh)命令时,不应提示您输入密码:

scp file user2@server2:/drop/location
Run Code Online (Sandbox Code Playgroud)