Articles of ssh tunnel

SSH隧道到Postgres数据库

目前我在远程开发服务器上开发。 我SSH进入开发服务器(使用SSH密钥)为 ssh -p 22222 [email protected] 然后从开发服务器,我通过本地networking连接到数据库 psql -U postgres -h psqldb -d my_database 其中psqldb指向dev服务器的/etc/hosts文件上的10.0.0.202 。 我想在我自己的电脑上开始本地开发。 如何通过使用远程开发服务器作为SSH隧道连接到本地机器上的psqldb Postgres服务器(还是有更好的方法)? 编辑 我没有提到,我已经在我的本地服务器上安装了Postgres并侦听默认端口5432。

如何知道如果我可以在服务器SSH?

我有超过200台服务器,但很难通过一些文件跟踪所有的文件,过了一段时间,所以刷新这个文件,我必须知道我可以通过SSHlogin哪些服务器。 我已经创build了一个脚本来ping通一系列的IP地址,现在我想知道这个列表是否可以通过SSH连接到它们。 我正在想一个循环内的sshpass和ssh的组合,但不知道这是最好的解决scheme。 任何想法或build议?

如何强制SSH隧道(或ProxyCommand)使用现有的主连接?

有三台机器A,B和C运行linux。 我有权限访问机器A和B,但不能访问C. A是我的本地机器,我想连接到C. C只能通过VPN上的ssh访问。 我不能直接从A连接到C,因为VPNstream量在A中被阻塞。我可以使用共享密钥通过ssh从A连接到B. 我在B运行openvpn,然后我可以通过SSH连接到C,但C不接受共享密钥。 我想直接scp文件,并从C到A,从A到C密码,所以我创build了一个在B的ssh主连接和在A的ssh隧道。但是我不能让隧道使用B中的主连接。我的问题是如何设置SSH以便使用B中现有的主连接从A连接到C?

如何build立这个连接?

我有2个服务器:server1和server2。 我不能直接在服务器2中直接使用server1的8080端口现在我以这种方式进行端口转发: ssh -4 -L 8080:server1:8080 user @ server2 我可以通过这个地址连接到第一台服务器: 本地主机:8080 但是我想通过这个地址连接: 服务器1:8080 我怎样才能做到这一点?

尝试访问隧道HTTP端口时,“协议不匹配”

我正在使用Mac 10.7.4,并且我有一个远程服务器端口8082上运行的HTTP服务,我只能通过中间服务器访问它。 所以我执行这些隧道命令 ssh -L 8082:remote-server:22 dalvarado@intermediate-server ssh dalvarado@localhost -p 8082 但是,当我打开Web浏览器(Safari或Chrome)并访问 http://localhost:8082/ 我得到错误 SSH-2.0-OpenSSH_5.3 Protocol mismatch. 我已经validation远程服务器的sshd_config文件包含“协议2”,我甚至尝试在上述SSH命令中添加“-2”标志,但是我仍然收到错误消息。 任何帮助表示赞赏,戴夫

当隧道SSH时,添加临时入口到主机

当我们公司的防火墙外,我使用脚本通过SSH隧道,并将我们的内部维基公开给我的OSX机器。 有没有一个命令暂时告诉OSX解决我的本地端口,当隧道build立? 我希望使用的序列是: 打开隧道ssh -f external-proxy.example -L 8001:internal-wiki.example:8000 -N [做这里] 在我的浏览器中inputURL internal-wiki.example:8000会导致它透明地查看localhost:8001 其他详情: 我可以编辑/ etc / hosts,但这将是一个持久的变化。 我只想在外面使用这个 我们没有使用SSL或证书。

有没有办法从SSHlogininput的密码?

我的服务器受到攻击,有人试图在我的SSH端口上运行蛮力攻击,我知道我可以使用iptables,fail2ban阻止非法的IP地址,但是我想知道哪个密码攻击者尝试了我的SSH,有没有什么办法来logging在SSH上尝试的密码?

如何SSH密钥的隧道

远程服务器上的端口9999需要通过本地端口9990上的SSH隧道进行访问,以避免出现防火墙。 我正在使用这个命令来SSH隧道: ssh -N -i share.pem -L 9990:`ecshare`:9999 ubuntu@`ecshare` ecmy包含ec2实例的ip。 作为一个基准,我可以用这个命令ssh并获得一个远程shell: ssh -i share.pem ubuntu@`ecshare` 但是,当我在本地提示符下尝试此操作时: curl -i -X GET http://localhost:9990 我在隧道开始的shell上得到这个: channel 2: open failed: connect failed: Connection refused 当我在远程shell上尝试这个命令时: curl -i -X GET http://localhost:9999 …我从服务器得到一个响应。 为什么连接被拒绝?

与秘密的公共(客户)ssl证书的SSH通道

我处于无法无密码login的情况下,ssh和ssh服务器无法在默认端口以外的任何其他端口上运行。 所以,我select了stunnel来隧道隧道。 在我的个人电脑上,我在客户端模式下使用stunnel并使用它login服务器,如下所示: ssh -p 8888 user@localhost 。 问题是SSL客户端证书是公开的,所以任何人都可以很容易地设置SSL隧道到我的服务器。 如果有任何人查询https://myserver.com则表明openssh 2.0正在ssl端口上运行。 所以它已经成为一个最简单的方法,比在非默认端口上运行ssl服务器简单得多。 所以,我想知道是否有可能使私人SSL客户端证书,以便它不会被提供给任何人在我的服务器上进行https查询。 而且我应该可以像ssl私钥一样保密。

SSH隧道在背景中

我试图将我的生产mongo服务器隧道到我的testing服务器,所以,我可以执行一些testing。 我知道我可以简单地通过ssh -Lbuild立隧道,但是我需要把它作为后台进程运行,因为我不能在terminal运行这个隧道。 我试过了 ssh -f user@myip -L 27017:localhost:27017 -N 我也试着简单地把它作为一个守护进程来运行,但是它也没有工作。 ssh -L 27017:localhost:27017 myuser@myip 我知道从不同的服务器指向生产数据库是不好的。 但是,事实是,我已经将我的资产迁移到了S3,并且在把它移到现场之前需要testing一切是否正常。 这只是需要我半天的时间来testing,所以我不想经历设置另一个实例的麻烦,并在这里转储我的数据库副本。 请帮我解决一下这个。