双SCP和SSH进程单一认证

3
我需要在同一主机上进行scp和ssh操作。是否可能只验证一次?是否可能只输入一次密码,然后在该主机上进行scp文件,然后ssh并交互式地工作? 更新 我获取HOSTNAME和SSH_PASSWORD。我以前从未登录过那台机器。我需要发送一些文件(可能使用scp),然后使用ssh登录并交互式地在该主机上工作。我想节省时间,只需输入一次密码。我有很多这样的主机...
4个回答

1
#/usr/bin/perl

use strict;
use warnings;
use Net::OpenSSH;

$ssh = Net::OpenSSH->new(host => '...', user => '...', password => '...');
$ssh->scp_put('/local/path/to/file', '/remote/path/to/file');
$ssh->system();

这是一个非常简短的解决方案。 - Tomek Wyderka

1

第一种方法:我需要将文件scp到主机上,然后ssh到该主机上,但我以前从未去过那里。第一次登录。没有经验。 - Tomek Wyderka
第二种和第三种方法可能对我有用。谢谢!我希望只能避免双重启动连接。scp和ssh命令打开加密隧道并需要时间...它们正在打开完全相同的隧道,使用相同的密码。我希望我们可以重复使用这个隧道。 - Tomek Wyderka
继第一条评论:没有交换密钥。除了它是Linux之外,对远程主机没有任何了解。 - Tomek Wyderka

1
假设您在远程计算机上拥有一个帐户,请先使用SSH建立连接,然后使用scp复制所需的文件 - 类似于以下内容:
ssh -y joepublic@examplehost.example.com

Password: <joepublic's password>

joepublic@examplehost.example.com

scp joepublic@thathostoverthere:/home/joepublic/thefileireallywantoverhere .

上一个命令scp也需要密码。我只想输入一次密码。而且我只有远程主机名/IP,没有返回路线。 - Tomek Wyderka

1

假设您正在使用公钥身份验证,只需设置ssh-agent即可。如果没有,openssh有能力创建一个主连接,进一步的连接可以在不需要额外身份验证的情况下使用,但这并不适用于所有ssh实现。我没有太多地尝试过它,因为对于交互式使用来说有点麻烦,但对于脚本使用可能值得一试。


没有公钥身份验证,只有密码。它需要与我以前从未登录过的远程主机一起工作。在我的情况下,没有ssh-agent可用。 - Tomek Wyderka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接