在机器之间复制文件而不上传我的私钥

在机器之间复制文件而不上传我的私钥

我可以通过 SSH 访问两台机器,我想在它们之间复制一个大文件。我也有sudo特权,但我不希望以任何方式将我的私钥文件上传到其中一台机器以从1号机登录到2号机。您觉得怎么样?

答案1

“ ...我不想以任何方式上传我的私钥文件到其中一台机器......”

看来您主要关心的是“你自己“私钥离开您的机器 - 但您不需要提供”你自己“私钥。

在您的“桌面/管理”计算机上,只需生成“一次性”新密钥对(使用 ssh-keygen),其命名方式与默认值不同,例如,一次性密钥。使用长密码保护您新创建的私钥。
上传新的(新创建的)私钥一次性密钥到,比如 server1,其他密钥,即新的公钥onetimekey.pub上传到服务器2。从 server1,使用新创建的私钥,将您的文件 scp 到 server2。
或者直接在 server1 上生成新的密钥对,将新的公钥下载到您的管理计算机,然后将其上传到 server2。

当然,将公钥上传到 server2 后,您需要将其“放置”在正确的位置(默认 ~/.ssh/authorized_keys)。

简而言之(当您在“桌面/管理”计算机上时):

ssh-keygen
# on the first prompt give 'onetimekey' name for the new key pair
# on 'passphrase' prompt give very long passphrase to secure your private key
scp onetimekey user1@server1:/home/user1/.ssh
scp onetimekey.pub user2@server2:/home/user2
ssh user2@server2 "cat onetimekey.pub >> .ssh/authorized_keys" # note >>, do not use >, > overwrites files
ssh user1@server1 # you are at server1 now, and from server1 run command below:
scp -i .ssh/onetimekey your_big_file user2@server2:/home/user2

抱歉,如果我对“我的私钥问题”的看法是错误的 - 我希望我没有错过整件事:)。

编辑(由于下面的OP评论):
OP询问他是否可以在server1和server2机器上使用/创建临时用户。当然,如果你想要这条路线,你也可以这样做:

sudo useradd user1 # on server1 machine
sudo useradd user2 # on server2 machine
# do your work
sudo userdel -r user1 # on server1; -r for deleting home directory, i.e., /home/user1
sudo userdel -r user2 # on server2

您可以在这些服务器上创建具有相同名称的用户,例如在 server1 和 server2 上创建 user1(在这种情况下,请更改上面的代码)。

我关于使用临时用户的评论的重要部分:
当我在评论中说“完成工作后,只需删除所有内容(私人/民众钥匙...如果
有人误解了authorized_keys,他/她可能会认为authorized_keys文件是公钥。authorized_keys文件不是公钥,它包含公钥,所以不要删除.ssh目录中的authorized_keys文件(你会锁定自己一旦您离开正在进行的 ssh 会话),
但是,如果您将使用临时用户,即使您删除了authorized_keys文件(/home/temp_user/.ssh/authorized_keys),这对您来说也不是问题。

答案2

我想你可以使用 2 个隧道然后使用nc.假设我们要将文件从 移动box1box2

ssh -L 4444:localhost:4444 user@box2 # open my box' port 4444 and connect to port 4444 on box2
ssh -R 4444:localhost:4444 user@box1 # open box1's port 4444 and connect to port 4444 on my box

现在,无论您连接到 box1 端口 4444,都将尝试使用 box2 上的端口 4444

在盒子2上:

nc -l 4444 > the_file

在盒子 1 上:

nc localhost 4444 < the_file

希望了解其他技术,以防万一。

相关内容