我需要scp然后ssh到同一主机。是否有可能只进行一次身份验证?是否可以输入一次密码,然后输入scp文件,然后在该主机上输入ssh并以交互方式工作?
更新
我获得了HOSTNAME和SSH_PASSWORD。我之前从未登录过那台机器。我需要发送一些文件(可能使用scp),然后使用ssh登录并以交互方式处理该HOST。我想节省时间和输入密码一次。我有很多这样的主人......
答案 0 :(得分:1)
有三种方法可以实现这一目标:
1 - 正确的方式:
2 - 使用expect:
进行操作3 - 使用pscp代替scp:
sudo apt-get install putty-tools
pscp -scp -pw $password $file_path $login@$IP:$dest_dir
答案 1 :(得分:1)
假设您在远程计算机上有一个帐户,请使用SSH first 建立连接,然后使用scp复制所需文件 - 例如:
ssh -y joepublic@examplehost.example.com
Password: <joepublic's password>
joepublic@examplehost.example.com
scp joepublic@thathostoverthere:/home/joepublic/thefileireallywantoverhere .
答案 2 :(得分:1)
假设您正在使用publickey身份验证,只需设置ssh-agent
即可。如果不是openssh
能够创建主连接,则可以使用其他连接而无需其他身份验证,但这并非所有ssh
实现都通用。我没有玩过多少,因为它对于交互式使用来说有点麻烦,但它可能值得研究脚本使用。
答案 3 :(得分: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();