我正在尝试连接到远程服务器并在Perl脚本中运行ssh命令。我已经提供了正确的端口、主机、用户名和密码。使用相同的凭据,我可以通过终端正确登录。当我在我的代码中提供相同的代码时,我得到了错误响应。请帮帮忙。
下面是我的代码:
use strict;
use Net::SSH::Perl;
my $hostname = "xxx.zzz.ccc.vvv";
my $username = "username";
my $password = "password";
my $cmd = "aws --version";
my $
我想征求您的意见,我们有一个有点复杂的网络设置,我需要连接到几十个linux盒,有时还需要对它们进行远程重新引导,但是在我甚至可以连接到目标linux框之前,我必须先登录到两个服务器,然后才能连接到目标linux框,给出一个例子:
ssh to server 1
- usr/pwd
-- ssh to server 2
--- ssh to target linux box
- usr/pwd
- sudo reboot
有办法绕过这条路吗?
我想在net-ssh start中设置Linux环境变量,并在我的代码中进一步使用它们。但我正在失去变量的范围。你能告诉我如何才能做到这一点吗? 我使用net-ssh并通过rsa密钥登录Linux。我已经设置了一个环境变量,我想进一步使用它,但我失去了该变量的作用域。 ssh = Net::SSH.start(host,
username
)
result = ssh.exec!('setenv SYBASE /opt/sybase && printenv') ### Can See environment varia
使用下面的函数,我可以连接到我的Linux机器。但很少有命令需要root权限才能执行,并且禁用了直接root登录。此外,用户不能执行sudo。
require 'net/ssh'
def sshutm(host,un,pwd,cmd)
Net::SSH.start( host, un, :password => pwd ) do|ssh|
result = ssh.exec!(cmd)
return result
end
end
我试过了,但它不起作用。
def sshutm(host,un,pwd,cmd)
Net::SSH.start( h
我有一个在"HOST“和"PORT”上运行的mongod实例,并且我正在尝试通过ssh获取进程的ulimit参数。 因此,以下两个命令可以很好地工作。 // outputs pid of mongod
ssh HOST@PORT pgrep mongod
17215
// outputs ulimit parameters of the process
ssh HOST@PORT cat proc/17215/limits
Limit Soft Limit Hard Limit Units
Max cpu time ... 所
我已经尝试在我的linux服务器中启用SSH登录。它能很好地连接我的私钥。我还访问了/etc/ssh/ssh_config并编辑了如下字段:
PasswordAuthentication no
但当我使用putty或winSCP时,它仍然允许我通过用户名/密码登录。现在,我可以从用户/密码和SSH密钥登录,就安全性而言,这是毫无意义的。我还需要做什么才能只允许SSH登录?