标签: ssh-tunnel

通过 ssh 隧道 Ping 目标

我想从源服务器 S 连接到我的目标服务器 T。但是,与 T 的连接仅限于中间服务器 I。由于 S 无法连接到 T,我使用以下方法创建了从 S 到 T 的 ssh 隧道:

ssh -N -f -L port:T:22 I

现在我可以使用以下方法连接到 T:

ssh -p port user@localhost

但我的问题是我必须 ping 到目标 T。我如何使用隧道进行 ping。

ping ssh-tunnel

2
推荐指数
1
解决办法
2万
查看次数

如何使用 Node.js 建立到 MongoDB 数据库的 SSH 隧道连接

我的凭据与 Robomongo 完美配合,但我无法与 node.js 建立连接
我曾尝试使用 ssh2 和 tunnel-ssh npm 模块建立连接,但两次都失败了。
- mongo 连接不需要密码
- ssh 连接是使用 pem 密钥建立的

这是我在 ssh2 模块中使用的代码,我可以正确建立隧道,但 mongo 连接失败

var Client = require('ssh2').Client;

var conn = new Client();
conn.on('ready', function() {
    console.log('Client :: ready');
    //mongo connection
        mongoose.connect('mongodb://localhost:27000/');
        var db = mongoose.connection;
        db.on('error', console.error.bind(console, 'connection error:'));
        db.once('open', function() {
            console.log("database connection established");
            var users = db.collection('user');
            var getallUsers = function (date, callback){
                users.find({}).toArray(function(err,data){
                    callback(data);
                })
            };
            getallUsers(null, function (data){
                console.log('data :'+  data);
            });
        });
    //end of …
Run Code Online (Sandbox Code Playgroud)

ssh mongoose mongodb node.js ssh-tunnel

2
推荐指数
1
解决办法
1万
查看次数

使用 ssh-tunnel 和 pymongo 客户端连接到远程 mongoDB 的 Python 脚本失败并出现错误

我正在尝试连接到远程mongodb,这里ssh访问有不同的用户名和密码,并且mongodb有不同的用户名和密码。

我尝试在 ssh 隧道服务器中传递 ssh 的用户名和密码,并在客户端中传递 mongodb 凭据,但收到错误消息:

pymongo.errors.ServerSelectionTimeoutError: 127.0.0.1:27017: [Errno 111] Connection refused
Run Code Online (Sandbox Code Playgroud)

这里发生了 ssh 连接,而 mongodb 没有连接

 def Collect_Pid_DB():

     MONGO_DB = "mydatabasename"

     server = SSHTunnelForwarder(
     (MONGO_HOST,22),
     ssh_username=username,
     ssh_password=password,
     remote_bind_address=('127.0.0.1', 27017)
 )
 server.start()
 #print (server)
 uri = "mongodb://admin:" + urllib.quote("p@ssW0$3") + "@127.0.0.1:27017"
 client = pymongo.MongoClient(uri,server.local_bind_port)
 db = client[MONGO_DB]
 print (db)
 print(json.dumps(db.collection_names(), indent=2))
 server.stop()
Run Code Online (Sandbox Code Playgroud)

实际结果:

Database(MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True), u'MissingPatches')
 Traceback (most recent call last):
   File "duplicate.py", line 7, in <module>
class MyClass:
  File "duplicate.py", line 41, in MyClass
Collect_Pid_DB('192.142.123.142','root','password','mydatabasename') …
Run Code Online (Sandbox Code Playgroud)

python database automation ssh-tunnel pymongo

2
推荐指数
1
解决办法
1万
查看次数

远程 Tensorboard 无法与 SSH 隧道配合使用

在家里,我尝试使用 Tensorboard 监控在我的工作机器上运行的张量流训练。
我们有一个 ssh 网关来访问工作中的机器,所以我必须建立一个 ssh 隧道,从我在互联网上看到的情况来看,这是如何连接 Tensorboard 6006 的默认端口:

ssh -NfL 6006:remote_machine:6006 user@ssh_gateway_machine

然后在远程机器上:

tensorboard --logdir dir/ --port 6006

然后在我家里的机器上:

http://localhost:6006

但页面是白色的并且永远加载,无法检索数据。

当我尝试从工作中的另一台机器监控同一台机器时,以相同的方式使用端口转发(没有 ssh 隧道)工作正常,所以问题不是来自 Tensorboard,而是来自 ssh 隧道,我猜,但我无法弄清楚找出原因。

ssh ssh-tunnel tensorflow tensorboard tensorflow2.0

2
推荐指数
1
解决办法
2759
查看次数

通过堡垒主机将 ssh 端口转发到 VPC 中的 Elasticsearch 集群无法正常工作

我想在我的 Macbook 上运行一些代码,通过堡垒主机访问 VPC 中的一个 Elasticsearch 集群。

这是我的 ssh 隧道命令:

ssh -i ~/Downloads/keypairs/20210402-02.pem ubuntu@ec2-123-456.us-west-2.compute.amazonaws.com -N -L 9200:https://vpc-123-es-domain-20210406-3abc123.us-west-2.es.amazonaws.com:443
Run Code Online (Sandbox Code Playgroud)

但是,这给了我以下错误:

bind [0.0.35.240]:443: Can't assign requested address
channel_setup_fwd_listener_tcpip: cannot listen to port: 443
Could not request local forwarding.
Run Code Online (Sandbox Code Playgroud)

添加-v了以下详细信息:

OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to ec2-123-456.us-west-2.compute.amazonaws.com port 22.
debug1: Connection established.
debug1: identity file /Users/fisher/Downloads/keypairs/20210402-02.pem type -1
debug1: identity file /Users/fisher/Downloads/keypairs/20210402-02.pem-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.1 …
Run Code Online (Sandbox Code Playgroud)

ssh amazon-ec2 amazon-web-services ssh-tunnel elasticsearch

2
推荐指数
1
解决办法
3751
查看次数

在Docker for Mac上使用SSH隧道的Xdebug

我最近在Docker社区上阅读了很多关于如何使用Docker for Mac在PHPStorm中调试PHP应用程序的帖子.所有这些都包含有用的信息,但没有在一个地方看到工作解决方案.

php xdebug ssh-tunnel docker docker-for-mac

1
推荐指数
1
解决办法
2826
查看次数

将dbeaver连接到远程服务器上托管的Postgres

我们使用的是远离两台服务器托管的postgres db,(请原谅我的行话)我们通常通过终端连接,例如:

本地=>(使用google auth)ssh服务器1 =>(使用google auth)ssh服务器2 => psql -h主机名-U Uname -d DBName

但是,这是一个繁忙的过程,我想通过Dbeaver连接到数据库。

我在线浏览,发现可以通过SSH隧道完成此操作,但我只能跳到一台服务器,而不能连接到另一台服务器。

感谢您的帮助,在此先感谢!

我的试验:

ssh -A -t host1.host.server1.com \ -L 5432:localhost:5432 \ ssh -A -t queries.host.server2.com \ -L 5432:localhost:5432
Run Code Online (Sandbox Code Playgroud)

而且我无法成功连接。即使我确实连接了,也只能将其连接到计算机,但是要访问数据库,我必须运行psql命令。在这之后我完全迷失了。

ssh ssh-tunnel dbeaver

1
推荐指数
1
解决办法
4663
查看次数

Paramiko 或 sshtunnel 和 ssh-agent 无需输入密码

我正在尝试使用 sshtunnel 创建到服务器的隧道。我正在使用 ssh-key 和 ssh-agent:

from sshtunnel import SSHTunnelForwarder

with SSHTunnelForwarder(
    (proxyhost, 22),
    ssh_username=ssh_username,
    #ssh_private_key_password=PASSPHRASE, # with this line it works
    remote_bind_address=('127.0.0.1', 3306),
) as tunnel:
    pass
Run Code Online (Sandbox Code Playgroud)

找到正确的私钥,当我给出密码作为参数时,隧道就建立了(请参见上面的注释行)。

但我已经使用 ssh-agent 解锁了我的 ssh 私钥(只有在重新启动后第一次使用 ssh 时才会要求我提供 ssh 密码)。是否可以让 paramiko/sshtunnel 获取解锁的私钥而不提示输入密码?我想避免将我的密码存储在磁盘上的任何位置。

python paramiko ssh-tunnel ssh-agent

1
推荐指数
1
解决办法
2341
查看次数

SSH 端口转发:绑定:地址已在使用中

我有一个远程服务器,我想对其进行 ssh 并将我的本地端口转发到其中。

我的应用程序在我的本地计算机上托管端口 443。我正在使用连接到服务器gcloud。这是命令:

gcloud compute --project "**^" ssh --zone "***" "***"
Run Code Online (Sandbox Code Playgroud)

目标是允许其他人在端口 9000 上与服务器进行通信,并且此流量将重定向到我的本地计算机的端口 443 上。换句话说,在端口 9000 上访问服务器相当于在端口 443 上访问我的计算机。

所以我做ssh端口转发

gcloud compute --project "**^" ssh --zone "***" "***" -- -L 443:127.0.0.1:9000 -N
Run Code Online (Sandbox Code Playgroud)

并返回此错误:

bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 443
Could not request local forwarding.
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

ssh portforwarding ssh-tunnel gcloud

1
推荐指数
1
解决办法
2万
查看次数

用于 Sequelize PostgreSQL 数据库的 SSH 隧道

我正在尝试访问隐藏在堡垒 EC2 实例后面的远程数据库 (AWS RDS) 之一。我可以通过我的 SQL 客户端轻松访问数据库,但无法通过我正在构建的 CLI 工具(使用Sequelizetunnel-ssh)访问它。我一直在关注这个GitHub Gist,但它在任何地方都使用相同的值,不幸的是它非常令人困惑。

我承认我对 SSH 隧道的一般理解很差,这在下面的示例中可能很明显。我的配置有问题吗?


数据库配置

Host:     wdXXXXXXXXXXXX.XXXXXXXXX.XX-XXXXX-X.rds.amazonaws.com
Port:     5432
User:     [DB_USER]
Password: [DB_PASSWORD]
Database: [DB_NAME]
Run Code Online (Sandbox Code Playgroud)

堡垒配置

Server:   35.183.XX.XXX
Port:     22
Password:
SSH Key:  ~/.ssh/id_rsa.aws
Run Code Online (Sandbox Code Playgroud)
Host:     wdXXXXXXXXXXXX.XXXXXXXXX.XX-XXXXX-X.rds.amazonaws.com
Port:     5432
User:     [DB_USER]
Password: [DB_PASSWORD]
Database: [DB_NAME]
Run Code Online (Sandbox Code Playgroud)

我上面的配置有问题吗?我对隧道的理解是否因我在隧道配置中使用的值而有缺陷?

另外,为什么除非我调用await函数(似乎根本不是 a)Promise否则隧道回调似乎不会被调用?

PS 还有这个Sequelize GitHub问题提到通过 SSH 隧道与 Sequelize 连接,但没有给出示例。

database ssh-tunnel sequelize.js

0
推荐指数
1
解决办法
930
查看次数