我想从源服务器 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。
我的凭据与 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) 我正在尝试连接到远程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) 在家里,我尝试使用 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 隧道,我猜,但我无法弄清楚找出原因。
我想在我的 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) 我最近在Docker社区上阅读了很多关于如何使用Docker for Mac在PHPStorm中调试PHP应用程序的帖子.所有这些都包含有用的信息,但没有在一个地方看到工作解决方案.
我们使用的是远离两台服务器托管的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命令。在这之后我完全迷失了。
我正在尝试使用 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 获取解锁的私钥而不提示输入密码?我想避免将我的密码存储在磁盘上的任何位置。
我有一个远程服务器,我想对其进行 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)
我做错了什么?
我正在尝试访问隐藏在堡垒 EC2 实例后面的远程数据库 (AWS RDS) 之一。我可以通过我的 SQL 客户端轻松访问数据库,但无法通过我正在构建的 CLI 工具(使用Sequelize和tunnel-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 连接,但没有给出示例。
ssh-tunnel ×10
ssh ×5
database ×2
python ×2
amazon-ec2 ×1
automation ×1
dbeaver ×1
docker ×1
gcloud ×1
mongodb ×1
mongoose ×1
node.js ×1
paramiko ×1
php ×1
ping ×1
pymongo ×1
sequelize.js ×1
ssh-agent ×1
tensorboard ×1
tensorflow ×1
xdebug ×1