Articles of ssh

对于从工作EC2映像创build的EC2实例,SSHlogin失败

我有一个function强大的EC2实例与几个用户,其中一些被chrooted到他们的主目录,其中一些是只有ftp和没有shell访问,等等… ec2用户是主要的pipe理员帐户,虽然其他人也有根访问和完整的sshlogin。 在运行的实例中一切正常。 我可以拍摄实例的快照图像,并从快照中启动新的实例。 无论我按照与新实例关联的密钥对(使用ec2用户的原始密钥对,创build新密钥对还是使用无密钥对)来select,一旦新实例启动并运行,我无法ssh到服务器使用ec2用户或任何其他SSH启用用户。 但是,FTP工作正常。 就我所知,安全组不是问题,就我所知,允许传入的通信(反正它和原始实例是同一个安全组)。 login尝试的/ var / log / secure给我: sshd[1739]: debug1: userauth-request for user ec2-user service ssh-connection method none sshd[1739]: debug1: attempt 0 failures 0 sshd[1738]: debug1: user ec2-user does not match group list sftponly at line 142 sshd[1738]: debug1: PAM: initializing for "ec2-user" sshd[1738]: debug1: PAM: setting PAM_RHOST to "…" […]

find所有者和产生ssh连接的过程

有一台我经常pipe理的服务器(每分钟几次)尝试连接到TCP端口22上的另一台机器。(ssh) 我的问题:我怎么能find产生这种连接的过程? 我已经检查了什么: tcpdump捕获在以太网接口+饲料wireshark =>结果是没有那么有趣,除了它似乎是一个标准的encryptionSSH连接,stream的重组并没有给我有用的信息,因为它是(当然)encryption。 lsof脚本:在每次运行之间,我将lsof已知的所有文件访问转储到文件大约60次,每次1秒。 我可以看到日志文件中的连接设置,但在其周围,我没有认识到有用的信息: … ssh 8478 root 3u IPv4 945966 TCP servername:randomport->destinationserver:ssh (ESTABLISHED) … 它看起来像是由root用户拥有的。 重复这个过程几次,但没有什么有趣的认识。 netstat显示了这个:(netstat -ntap) tcp 0 0 servername:randomport destinationserver:22 TIME_WAIT – tcp 0 0 servername:randomport destinationserver:22 TIME_WAIT – 当我logging足够多的迭代时,我看到它每分钟下降到一个time_wait cnx并且回到2几次。 的crontab: 没有crontabs被发现的任何用户启动一些ssh cnx在/ etc / cron *文件和目录中的ssh 开始审计 添加了这个规则: auditctl -a exit,always -F arch=b64 -S connect -k […]

为成千上万的用户提供SSH访问

我需要设置一个类似于GitHub的解决scheme,在这里用户可以SSH到他们的git仓库。 这应该扩展到成千上万的用户,所以我的想法是使用分布式文件系统(因此每个节点都可以访问整个数据)和一个复制数据库来控制用户(所以再次 – 每个节点都可以访问整个用户列表)。 使用正常的authorized_keys文件是不可能的,因为用户没有绑定到特定的节点,所以我正在寻找一种方法来从数据库中读取列表( https://serverfault.com/a/443230/125948 )。 AuthorizedKeysCommand命令的问题是它只传递用户名(这是我的情况 – 对所有用户都是git ),所以基本上我必须做一个SELECT pub_key FROM user并且总是返回每个连接的SELECT pub_key FROM user列表。 这显然不是适当的解决scheme,所以我正在寻找另一种方式进行身份validation。 基本上我的问题是: GitHub是怎么做到的?

当后台ssh会话终止时,终止远程进程

所以现在我有一个bsh脚本,它使用ssh在远程机器上运行命令。 运行bash脚本的机器是Linux机器,远程机器是运行cygwin的Windows机器。 bash脚本包含以下几行 #!/bin/bash ssh -i key.pem user@ip "command1" & # some other commands here, not included because they're not relevant to question wait command1是一个长期运行的过程。 目前,当我在等待完成之前将Ctrl-C从我的bash脚本中取出时, command1仍在远程计算机上运行。 它基本上变得分离和不可控制。 当我按Ctrl-C时,我希望它终止,否则远程机器将散布许多command1实例,如果我不断提前终止我的脚本。 注意背景&是必要的,因为我想在命令运行时运行其他命令。 我已经尝试了几种方法 为伪terminal添加“-t -t”选项 添加下面的行希望将SIGINT传递给我的SSH会话 trap 'kill -INT -$$' SIGINT 我也做了陷阱命令的变化,我得到了一个PID子列表,并通过它遍历每一个。 那也行不通。 SIGHUP也没有工作。 到目前为止,我得到command1来终止的唯一方法是如果我只是运行ssh命令 ssh -t -i key.pem user@ip "command1" 没有背景,并在同一个terminal键入Ctrl-C。 如果我从其他terminal发送SIGINT或SIGHUP,它甚至不能工作。 通过后台ssh终止远程命令的正确方法是什么? 注意只有当远程机器是cygwin环境时才会发生这种情况。

rbash限制用户到其主目录closuressftp连接

服务器:红帽企业Linux服务器版本6.5(圣地亚哥) 使用openssh-server来允许sftp连接。 我试图限制用户到他们自己的个人主目录。 所以我修改/ etc / passwd设置用户“john”使用/bin/rbash而不是/bin/bash john:502:503::/home/john:/bin/rbash 如果我这样做,约翰不能通过SFTP连接:连接closures,只要他login(SFTP消息是Connection closed )。 如果我将bash设置为/ bin / bash,他的connexion可以正常工作,但是john可以使用cd遍历整个服务器文件系统。 你能解释我做错了什么,以限制用户通过SFTP连接到自己的目录?

如何发起SSH隧道与暴发户

我不是很习惯syspipe理,最近用两个命令在两台服务器(Ubuntu 12.4上)之间创build了一个SSH隧道: ssh -fNg -L 3307:127.0.0.1:3306 [email protected] 它的工作原理,我也将这个命令添加到/etc/rc.local,并在启动时成功启动SSH隧道。 但是,我试图在/etc/init/my_tunnel.conf文件中添加我的隧道,并且在每次启动时都启动了近12个隧道! 我使用了下面的代码: start on (local-filesystems and net-device-up IFACE=eth0) stop on runlevel[016] respawn exec ssh -fNg -L 3307:127.0.0.1:3306 [email protected] exit 0 我花了几个小时,不知道为什么以及如何执行这个脚本很多次。 我也尝试过start on[2345] ,完全阅读新贵的手册,但仍然是一样的。 我相信我在这里错过了一些东西。 如果有人能帮助我。 谢谢。

当通过ssh运行脚本时,环境variables不可用

假设我有两个主机:A和B,用户a和b。 B是安装Cygwin的Windows机器,如果这很重要的话。 B被configuration为从A通过SSH访问而不需要密码(它包含A的公共RCA密钥),所以我可以通过以下方式在A上运行命令: ssh b@B [command] 但是当我尝试运行一个命令时,需要访问一个环境variables,命令失败: [15:54:08] – a@A – ~ $ ssh b@B 'echo $ANT_HOME' 返回空string。 相同的命令,如果直接连接(不通过SSH)是正确执行的: b@B ~ $ echo $ANT_HOME /cygdrive/c/PROGRA~1/apache-ant-1.9.0 后者是可能的,因为相关的variables是在“bash_profile”中输出的: export JAVA_HOME="/cygdrive/c/PROGRA~1/Java/jdk1.7.0_45" export ANT_HOME="/cygdrive/c/PROGRA~1/apache-ant-1.9.0" 但由于某些原因,这不适用于SSH的情况。 一些额外的信息可能是有用的。 主机B有Windows XP + Cygwin。 CYGWIN sshd在SYSTEM帐户下运行。 在Windows的“系统”环境variables部分中定义了JAVA_HOME和ANT_HOME。 当我运行“$ ssh b @ B env”命令时,它不会打印ANT_HOME或JAVA_HOME,但是如果将它们包含在sshd_config文件中,则会执行此操作。 但即使如此,简单的命令ssh b @ B'echo $ ANT_HOME'不能像我所期望的那样工作。 请给我一个提示,通过SSH运行命令需要做什么。

connect-to-oracle-db-9i server-using-ssh-tunnel-via-putty

我试图连接NAT后面的ORACLE DB,所以我通过puttyselectSSH TUNNEL,所以这里是信息 全局ip示例:122.54.34.12 局域网ip例如:192.168.3.103 ORACLE DB_PORT:1521 这里是putty ssh隧道设置 L1521 122.54.34.12:1521 所以我连接到全球IP ssh会话,每一件事情都可以告诉现在,但是当我想通过SQL控制台连接ORACLE DB后,SSH隧道 sql > connect username/[email protected]/service-name ERROR: ORA-12170:TNS Connect timeout occurred

SSH Mounted Drive,网站主目录已更改

一个星期前,我有一个新的硬盘驱动器添加到我的专用服务器的额外存储,因为我把一个video站点在服务器上,将存储大量的video。 所以我想把这个驱动挂载到新网站的public_html目录中。 此服务器托pipe多个站点,所以我在新站点目录中创build了一个名为“video”的新目录,然后将新驱动器挂载到此目录中。 video正在上传到新的驱动器没有问题。 我使用SSH来执行上述命令,并使用WHM / CPANEL来创build新的站点。 今天,我需要为客户添加一个新的站点到服务器,所以我login到CPANEL,但是当我创build新的站点时,这个站点的主目录也被创build在video文件夹中。 当我去的网站,我得到一个错误:模板错误:必须给模板文件(或模板无法打开)..当我检查我创build网站后收到的电子邮件,我注意到,HomeRoot设置到/ home / videoho / public_html / videos – 这是我在哪里安装了额外的存储驱动器。 当我SSH进入服务器,并检查我的主目录,我没有看到新的网站目录在这里。 但是,当我 我不完全确定如何解决这个问题… 任何援助真的很感激。 谢谢!

SSH不工作..密码promt不来

从昨天开始,我无法通过SSH连接到我的Ubuntu服务器。 我没有使用任何无密钥或公钥方法..其简单的SSH与用户名和密码每次.. 然而,我可以做一个VNC会话在我的Ubuntu服务器上运行..但是,我担心,如果VNC会话出去,我不会有任何方式login到服务器.. 我的ssh-vvv输出如下 sumanth@sumanth:~$ ssh -vvv user@serverIP OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to 172.16.2.156 [172.16.2.156] port 22. debug1: Connection established. debug1: identity file /home/sumanth/.ssh/id_rsa type -1 debug1: identity file /home/sumanth/.ssh/id_rsa-cert type -1 debug1: identity […]