我正在使用Expect进行ssh。我想知道产生的会话的会话ID。我该怎么做?
这是我的密码:
my $addr = "10.101.10.102";
my $cmd = "ssh username@".$addr;
my $exp = Expect->spawn($cmd) or die "Cannot spawn command\n";
当我ssh连接到另一个主机hosta,然后再连接到另一个主机hostb时,一切正常。两台主机目前都需要一个密码。
但是,当我试图快捷这个中间主机并将下一个ssh作为参数时,我得到了常被提及错误:
$ ssh -X hosta ssh1 -X -1 login@hostb
Pseudo-terminal will not be allocated because stdin is not a terminal.
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Permission denied, please
我有一个Perl脚本可以做到这一点:它在我的系统上生成一个ssh身份验证密钥,然后将这个密钥复制到一个远程Linux系统,用于无密码的ssh连接。代码如下:
# Generate an rsa key and store it in the given file
system("ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa 1>/dev/null");
# Copy the generated key to a remote system whose username
# is stored in vari
我有一个使用ubuntu14.04的VM。在窗户上跑。如果我使用VM桌面上的终端,我可以使用注册的SSH密钥连接到我的服务器,而不需要密码。
当我使用ssh客户端从窗口连接到VM时,我无法在没有密码的情况下登录服务器。
Linux(VM) ---> Server | Authentication with SSH keys works
SSH session ---> Linux(VM) ---> Server | Ask for the server password.
当我远程连接时,它如何使用在VM中注册的SSH密钥?