Articles of ssh

BASH shell会话logging在远程主机上

将BASH shell会话logging到主机上的文件的最佳方法是什么? 首选输出格式将等同于PuTTY的“可打印输出”日志设置,由用户查看,包括input和ncurses控制字符数据。

在auth.log中,“sshd:error:connect_to … failed”是什么意思?

我在服务器上的/var/log/auth.log发现了以下错误消息的几次重复: Aug 10 09:10:16 hostname sshd[661]: error: connect_to 1.1.1.1 port 25: failed. 我更改了实际的IP地址,它们是通常属于邮件服务器的外部地址。 我不明白的是谁正试图连接到这些地址,以及sshd与它有什么关系。 sshd在端口22上运行,该服务器上的端口25上没有任何运行。 这条线究竟意味着什么,谁启动了连接,为什么是sshd?

双因子SSH身份validation只在外部地址

我有一个私人,内部,IP和面向公众的IP的Ubuntu服务器。 我想在公共方面为SSH设置双因素身份validation。 这可能吗? 我打算使用Google身份validation器,但也可以select其他想法。

SSH:id_rsa不起作用,但如果我重命名它,它的工作原理

我有这个id_rsa在我的〜/ .ssh文件夹中。 但它只是不authentication。 如果我复制它,并将其重命名为任何不id_rsa,它的作品。 [qfan@mycomputer .ssh]$ ls -al id_rsa id_rsa_good -rw——- 1 qfan qfan 1766 Dec 3 18:35 id_rsa -rw——- 1 qfan qfan 1766 Nov 20 19:43 id_rsa_good [qfan@mycomputer .ssh]$ sha1sum id_rsa id_rsa_good 8cc7f68170038b184bba0541be7d105bb36f7d11 id_rsa 8cc7f68170038b184bba0541be7d105bb36f7d11 id_rsa_good [qfan@mycomputer .ssh]$ ssh localhost -i id_rsa qfan@localhost's password: [qfan@mycomputer .ssh]$ ssh localhost -i id_rsa_good Enter passphrase for key […]

SSH端口转发

我想通过公共可访问的服务器(公共)连接到我的电脑(本地)在NAT后面。 在本地: ssh -g -R 8000:localhost:22 user@public 然后公开: ssh -p 8000 user@public 但我收到error: Connection refused. 当我login到公共服务器时,我可以validation隧道正在工作: ssh -p 8000 localhost 这在本地计算机上打开ssh。 我怀疑公共服务器应该作为透明代理吗? 或者如何使它像那样工作。

在MacOSX Snow Leopard中记住了SSH密码

我正面对雪豹的一个非常奇怪的情况。 我有一个Linux服务器,configuration为接受只通过RSA密钥authentication的ssh连接。 没有密码。 在我的笔记本电脑上,我用ssh-keygen正确部署了RSA密钥,而当我这样做时,我添加了一个密码短语。 然后我移动了Linux服务器上的id_rsa.pub .ssh / authorized_keys。 到现在为止还挺好。 现在我尝试从我的Snow Leopard笔记本电脑login到Linux机器上。 我得到一个窗口popup窗口询问我的密码。 这是令我惊奇的第一件事情,因为我预料到了一个shell密码请求,而不是一个popup窗口。 根据此popup窗口中的详细信息,请求密码的应用程序是ssh。 此外,还有一个选项“记住钥匙串中的短语”,该选项被禁用。 我input我的密码。 popup消失,terminal正确login到Linux机器。 现在,如果我注销,并再次尝试SSH,login发生没有任何密码的请求,这不是我想要的。 我检查的东西: 没有任何东西被保存到钥匙串中。 浏览了一下,什么也没find。 如果我closures/退出terminal,并打开一个新的,我仍然没有要求密码,并没有任何查询sshlogin。 如果我从MacOSX会话注销并重新login,则在下一次尝试时请求密码,并再次popup一个对话框。 然后它不再被要求。 密码存储在哪里? 到底发生了什么事情,以及如何在每次ssh尝试时强制使用密码的请求?

如何在zsh上编辑ssh的命令完成?

我想在zsh上设置命令完成,以在我键入之后显示主机名 ssh [TAB] 从我的.ssh / config文件(最好从known_hosts和/ etc / hosts以及其他任何有意义的地方)中提取名称,然后显示一个列表。 它目前做了一些,但是 它根本不使用.ssh / config 它首先需要用户名,即使使用.ssh / config也不需要input用户名 它提供了多个列表(可能来自known_hosts,另一个来自/ etc / hosts,但我没有证实) 所以我想在inputssh [TAB]之后在(最好是单个)列表中包含已知的用户名和已知的主机名, (我在Google之前来到这里,因为1)会导致答案被存储在这里,2)它可能更有效率。 如果没有人回答,我会寻找答案。)

反向SSH隧道

我试图转发从远程服务器的networkingstream量到我的本地机器,以testing一些API集成(tropo,贝宝等)。 基本上,我试图设置类似tunnlr.com提供的东西。 我用命令启动了ssh隧道 $ssh –nNT –R :7777:localhost:5000 user@server 然后我可以看到服务器正在使用端口7777进行监听 user@server:$netstat -ant | grep 7777 tcp 0 0 127.0.0.1:7777 0.0.0.0:* LISTEN tcp6 0 0 ::1:7777 :::* LISTEN $user@server:curl localhost:7777 Hello from local machine 所以这工作正常。 curl请求实际上是从本地机器提供的。 现在,我如何启用server.com:8888通过该隧道路由? 我试过像这样使用nginx: upstream tunnel { server 0.0.0.0:7777; } server { listen 8888; server_name server.com; location / { access_log /var/log/nginx/tunnel-access.log; error_log /var/log/nginx/tunnel-error.log; […]

不能ssh作为tty-less用户

我试图通过调用ssh(使用密钥authentication)从没有tty(用户我的Apache服务器正在运行)的用户运行单个命令,并不断得到以下结果: OpenSSH_5.9p1, OpenSSL 1.0.0g 18 Jan 2012 Pseudo-terminal will not be allocated because stdin is not a terminal. debug1: Reading configuration data /etc/ssh/ssh_config debug1: Connecting to localhost [::1] port 54367. debug1: Connection established. debug1: identity file nonpublic/id_rsa type 1 debug1: identity file nonpublic/id_rsa-cert type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9 debug1: […]

SSH – 通过每个连接设置env可变物 – godaddy共享主机

我的问题是,我必须在服务器上设置envvariables(如GIT_EXEC_PATH)。 我需要每个连接的variables(所以通过bash和远程命令)。 我设法通过bash与.bash_profile设置这些variables,但我有远程命令的问题。 我发现有可能在〜/ .ssh / authorized_keys之前编写实际的rsa键,但是我不想总是写在那里,我需要一个永久的解决scheme…我发现〜/ .ssh / rc文件是由每个sshlogin执行的,所以我把我的envvariables声明,但它没有工作。 variables在rc文件中设置,但是之后它们消失了。 :S也许rc文件运行在一个子shell:S有没有什么办法可以在bash和远程命令中定义这些variables而不会有代码重复? 编辑: 我编辑的问题,因为服务器是一个godaddy共享主机,所以它有一个独特的configuration。 / etc / ssh / sshd_config和/ etc / ssh / ssh_config文件是空的。 这些文件中有评论,如果你好奇,我可以在这里复制它。 〜/ .bash_profile来源(仅限bash连接), 〜/ .bashrc永远不会被find, 〜/ .profile从来没有来源, 〜/ .ssh /环境永远不会来源, 〜/ .ssh / rc源于(通过bash和远程两者),但我认为这是在子shell中调用,因为variables消失。 〜/ .ssh / authorized_keys是每次都来源的,但是我必须在每个rsa键之前写下命令(所以我不想configuration这个)。 概要: 我可以很好地configurationbash(使用.bash_profile),但是我不能configuration远程调用。 那就是问题所在。 我正在寻找一个由bash和远程命令来源的文件。 例如: git-upload-pack命令查找exe文件,因为设置了GIT_EXEC_PATH envvariables,但是使用远程:“git clone [email protected]:myrepo local / myrepo”,服务器找不到该命令,因为GIT_EXEC_PATH没有设置。 […]