我有sudo设置为用户(myuser)如下“主机名”(sudoers内容): Cmnd_Alias SCRIPT = /path/脚本* myuser ALL =(suser)NOPASSWD:SCRIPT 这工作正常,所以我可以运行以下,作为主机名myuser本地login,无需密码: sudo -u suser / path /脚本 但是,当我使用ssh(带密钥设置,所以不需要密码)login和运行,如下所示: ssh主机名sudo -u suser / path /脚本 我得到提示input密码,当input密码时,我得到: 对不起,用户myuser不能像主机名上的suser那样执行'/ path / script' 。 更新问题是通过从sudoers命令的末尾删除“*”来解决的。 *被添加到允许parameter passing给脚本,但实际上并不需要。 仍然不明白为什么*允许sudo在本地工作,但不能通过SSH。 所以问题依然存在
我正在部署使用Capistrano到一个新的服务器,并有以下问题。 目前,我无法添加一个SSH密钥到服务器login,所以我必须使用密码authentication。 但是,我确实有另一台服务器保存在本地用户帐户的.ssh目录中的一个键。 以下是我尝试login时遇到的错误: C:\Web\WebApp1>cap deploy:setup * executing `deploy:setup' * executing "mkdir -p /home2/webapp1 /home2/webapp1/releases /home2/webapp1/shared /home2/webapp1/shared/system /home2/webapp1/shared/log /home2/webapp1/shared/pids" servers: ["myserver.example.com"] connection failed for: myserver.example.com (OpenSSL::PKey::PKeyError: not a public key "C:/Users/MyAccount/.ssh/id_rsa.pub") 我怎样才能让Capistrano忽略密钥的存在,让我用密码login呢? 我试着将set :password, "myp@ssw0rd"到deploy.rb ,但没有帮助。 UPDATE 我跟着@ sysadmin1138的答案将以下添加到sshconfiguration文件: HostName myserver.example.com PreferredAuthentications=password PubkeyAuthentication=no 现在,我得到的错误: connection failed for: myserver.example.com (Net::SSH::AuthenticationFailed: webappuser) 它甚至不要求密码。 当我尝试在configuration文件中指定密码时,它仍然给出相同的错误。 以下是我的Capistranoconfiguration的相关部分: role :web, […]
我一直在试图设置我最近升级到Mountain Lion的MacOS X服务器,使用denyhosts,因为我需要打开端口22。 denyhosts设置并添加条目到/etc/hosts.deny,所以我决定添加我的笔记本IP到它,以validation它实际上工作,但我仍然可以login,我的IP显示在/私人/ var /日志/system.log。 我甚至重新启动服务器,以确保没有一些服务必须重新启动。 我尝试了以下条目: ALL: <my laptop's IP> sshd: <my laptop's IP> sshd: 127.0.0.1 我的/ etc / sshd_config设置了以下参数: UsePAM yes UseDNS no 我谷歌如果deny.hosts已被弃用OSX 10.7或10.8,但我找不到它的任何迹象。 有什么错误的想法,或者如果有另一种方法来实现相同的结果? 是的,一个私钥将解决这个问题,但暂时我想坚持使用密码authentication。 我也喜欢denyhosts的想法,实际上阻止访问服务器上运行的所有服务,而不仅仅是ssh。
我知道这个问题已经被问到,但我确定我已经做了所有其他答案的build议。 机器A: 使用keygen -t rsa创buildid_rsa.pub〜 / .ssh / 将机器A的id_rsa.pub复制到机器B用户的主目录 取得了id_rsa.pub 600的文件权限 机器B 将Machine A的pub key添加到authorised_keys和authorised_keys2:cat〜 / id_rsa.pub >>〜/ .ssh / authorised_keys2 做了id_rsa.pub 600的文件权限 我也确保了.ssh目录在A和B两台上都有权限700 。 如果我尝试从机器Alogin到机器B,系统会要求input密码,而不是ssh密码短语。 我有两台机器上的root用户使用无密码的ssh进行对话,但是我不能让一个普通的用户来这样做。 用户名必须是双方相同的? 还是有一些其他的地方我错过了。 机器A是在Windows 7 PC上的VirtualBox内部运行的Ubuntu 10.04虚拟机,机器B是专用的Ubuntu 9.10服务器 更新 :我已经运行ssh选项-vvv ,它提供了许多输出行,但这是最后几个命令: debug3: check_host_in_hostfile: filename /home/pete/.ssh/known_hosts debug3: check_host_in_hostfile: match line 1 debug1: Host '192.168.1.19' is known and matches the RSA […]
为了远程访问Linux服务器,pipe理员可能使用Putty Key Generator生成公钥和私钥对,并向我发送.ppk文件。 我在Putty中加载了.ppk文件(拥有私钥),现在可以通过Putty访问服务器,而不会提示input密码或密码。 为了通过命令行ssh程序访问远程服务器,我也复制了$ HOME下的.ssh目录下的文件。 但是,当我尝试使用ssh命令访问该服务器时,程序要求我input密钥(xyz.ppk)的密码,并且不接受简单的Enter,并且终止于以下消息: Permission denied (publickey,keyboard-interactive) 我需要做些什么来解决这个问题? 我只是想知道是否私钥是密码保护为什么不要求同样的腻子。 我希望由Putty Key Generator生成的密钥也可以用于命令行ssh。
我有一个rsync备份脚本来在两个Ubuntu服务器(位于不同的国家)之间传输数据。 正在备份的数据在文件数量方面相当大。 总共大约17GB。 脚本在接收器服务器上运行。 所以,这基本上是一个拉 。 用于login的公私钥authentication。 脚本工作正常; 备份已经成功了好几个月了。 最近6天左右,备份还没有完成。 rsync进程运行大约45分钟左右。 然后就结束了。 我不知道为什么会停下来。 从我所看到的,它甚至不完成构build和扫描文件列表。 我有cron输出指向一个日志文件。 在日志中,我看到的只是: receiving file list … done 。 但是我可以看到没有任何东西被转移到备份目的地。 如果我手动运行脚本,约45分钟后,我只看到这个: ./sync.sh: line 51: 9078 Killed $RSYNC $OPTIONS $SOURCE $DESTINATION 我如何以及在哪里看到失败的原因? 我怎么知道哪个服务器实际上正在终止进程,发送者或接收者? 拉机(脚本运行的地方)是一个低端机器。 这是一个256MB RAM的KVM虚拟机。 所以,我想知道如果build立文件结构是占用太多的RAM,从而导致OOM错误。 但是,如何检查是否属于这种情况呢? 此外,文件没有显着增加,导致突然失败。 任何提示将不胜感激。 谢谢。 更新1 正如@APZ所build议的,我添加了一些更详细的标志(共3个),并手动运行脚本,将输出redirect到一个文件。 这是最后的输出: (…. lots of file names….) received 5795917 names done […]
如何在远程机器上的真实eth卡之间设置桥接,而不会丢失与该机器的ssh连接。 我通过eth1接口ssh进入一台机器。 172.168.40.2 255.255.255.0。 我想将eth1jointun / tap设备'tun0'。 我怎样才能做到这一点,而不是closureseth1和丢失我的SSH连接。 tunctl -u root brctl addbr br0 brctl addif br0 tun1 brctl addif br0 eth1 结果,连接将会丢失
我试图build立一个反向ssh隧道,如下所示: A ==========> B <—-X—- C 我从A发起隧道: ssh -p 443 -NR 19001:localhost:21 userOnB@B 在计算机B如果我使用隧道,我可以使用隧道: ssh -p 19001 userOnA@localhost 但是,如果我连接到B的名称,IP地址或另一台计算机(如C ),我得到一个ssh: connect to host port 19001: Connection refused 。 哪里不对?
好的,我有一个encryption的ssh私钥,可以访问服务器。 我的Ubuntu GNOME桌面有一个集成的graphicsssh代理(海马v3.2.2)。 这个ssh密钥在这个ssh代理中,当我login到我的桌面时它会自动解锁。 我可以ssh到服务器(使用这个encryption的ssh私钥)罚款,而不必input任何东西。 不过,我忘记了这个SSH密码的密码。 有无论如何提取(从SSH代理)未encryption的SSH密钥? 由于我可以用任何东西login服务器,我的电脑上的东西显然可以访问这个密钥的未encryption版本,所以我应该可以提取未encryption的版本,不是吗?
为了安全起见,我只允许一个虚拟用户在我的CentOS 5.8服务器上通过SSHlogin,为此我添加了: AllowUsers dummyaccount 当访问我的服务器时,我使用虚拟机login并使用su -来获得root权限,这种方式非常好。 现在我已经使用了sftp: Subsystem sftp /usr/libexec/openssh/sftp-server 当我用我的ssh客户端build立一个ssh隧道,并用FileZilla连接到它,我可以很好地login我的虚拟帐户,我最终在它的根。 然而,我现在想或者获得root权限与我的虚拟帐户上sftp时,所以我可以完全用它来pipe理文件系统或者我想允许rootloginsftp而不是ssh,所以换句话说, d用sshlogin虚拟机,并使用su -获得如上所述的root权限,但是当我创build一个ssh隧道时,我可以通过sftplogin到我的根目录。 我听说有一种方法只允许用户通过将其shell改为sftp-server来允许sftp访问,但是显然这不是root的选项,因为改变它的shell会破坏我所知道的系统。 用这种configuration让不同的用户能够工作,但是他们只能像虚拟机一样通过sftp访问文件系统。 你会build议什么?