我有一个Apache Web服务器通过反向ssh隧道在本地机器上运行,即:
ssh -R*:80:local_machine:8080用户名@ gateway_machine
换句话说,来自gateway_machine上端口80的所有流量都将发送到local_machine上的端口8080.
出于监控目的,我希望知道连接到gateway_machine的远程客户端的IP地址.但是,我的本地Apache服务器会看到来自gateway_machine的IP地址的所有流量.
我的问题:有没有办法设置在gateway_machine上运行的ssh服务器,以便它使用实际的远程IP地址将所有流量发送到local_machine?
我有 PostgreSQL 服务器,一台单独的计算机是它的客户端。他们在一个网络中。如果我使用 psql 命令
psql --host db_ip_address --port 5432 --user user base_name
连接正常,一切正常。
但是,如果我将打开到数据库服务器的 SSH 隧道,例如:
ssh -L 63333:localhost:5432 root@db_ip_address
然后尝试做同样的事情:
psql --host localhost --port 63333 --user user base_name
比它突然输出错误信息:
psql: FATAL: Ident authentication failed for user "user"
服务器上的 pg_hba.conf 有以下几行:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.0.49/32 trust
host all all 192.168.0.50/32 trust …Run Code Online (Sandbox Code Playgroud) 我想在远程计算机上使用Jupyter笔记本.设置如下:我有我的家用笔记本电脑,它可以ssh到我大学网络上的特定计算机(例如gateway.myuniv.edu).一旦我登录gateway.myuniv.edu,我可以ssh到我想运行Jupyter笔记本服务器的计算机(例如cluster.myuniv.edu).
有效:我可以在网关上运行服务器,并使用本地端口转发从我的笔记本电脑连接到服务器,如下所示:
上gateway.myuniv.edu:$ jupyter notebook --no-browser --port 8888
在我的笔记本上: $ ssh -v -N -L 9000:localhost:8888 myusername@gateway.myuniv.edu
然后在我的笔记本电脑的浏览器上打开网址: http://localhost:9000
什么行不通:我不想在网关上运行服务器,因为我不能在那里进行繁重的计算.我试着做以下事情:
上cluster.myuniv.edu:$ jupyter notebook --no-browser --port 8888
在我的笔记本上: $ ssh -v -N -L 9000:cluster.myuniv.edu:8888 myusername@gateway.myuniv.edu
然后在我的笔记本电脑的浏览器上打开网址:http://localhost:9000.这不起作用:SSH表示连接被拒绝.
我不明白为什么会发生这种情况以及如何调试它会很乐意提供任何帮助.谢谢!
我正在尝试使用远程调试,但在 pycharm 上出现此错误:
运行 remoteTest 时出错:找不到空闲的套接字
我的远程主机是 Ubuntu |(使用用户名和密码),我的本地主机是 windows,我遵循了以下教程:https : //blog.jetbrains.com/pycharm/2010/12/python-remote-debug-with-pycharm/ 我在腻子上使用了 ssh 隧道连接到服务器。
import pydevd
pydevd.settrace('localhost', port=21000, stdoutToServer=True, stderrToServer=True)
Run Code Online (Sandbox Code Playgroud) 在 Mac 上使用 sshfs 后,我无法再看到我的用户目录。
当我打开终端窗口时,我看到以下内容:
Last login: Mon May 22 10:54:30 on ttys003
mkdir: /Users/<username>/.bash_sessions: Device not configured
-bash: /Users/<username>/.bash_profile: Device not configured
touch: /Users/<username>/.bash_sessions/35166655-583B-47CC-9BCF-5E785DD5E46E.historynew: Device not configured
Run Code Online (Sandbox Code Playgroud)
有没有什么办法解决这一问题?
干杯保罗
我在一个 GCP 项目上有一个(非管理员)帐户。
当我启动 Dataproc 集群时,GCP 会启动 3 个虚拟机。当我尝试通过SSH(在浏览器中)访问其中一个 VM 时,出现以下错误:
我尝试添加推荐的权限,但无法添加iam.serviceAccounts.actAs权限。
知道如何解决这个问题吗?我通读了 GCP 文档,但找不到解决方案。我有以下与我的帐户相关联的角色:
ssh-tunnel google-cloud-console google-cloud-platform google-cloud-dataproc
我正在尝试编写一个连接到数据库的 python 脚本,但是只有当您首先通过 SSH 连接到堡垒主机时才能访问该数据库。从命令行,这是我必须做的来设置隧道:
$ ssh -i /path/to/my/key/file.pem -A -L 3307:mydb1.fsd23rqr.us-east-1.rds.amazonaws.com:3306 my_ssh_username1@my-bastion-host.without.2fa
[ec2-user@ip-X-X-X-X ~]$
Run Code Online (Sandbox Code Playgroud)
我已经使用这个sshtunnel 库创建了一个 python 脚本来做同样的事情。有用:
#!/usr/bin/env python
from sshtunnel import SSHTunnelForwarder
import MySQLdb as db
import pandas as pd
print('\nAbout to try connecting')
with SSHTunnelForwarder(
('my-ssh-host.without.2fa', 22),
ssh_username='my_ssh_username1',
ssh_pkey='/path/to/my/key/file.pem',
remote_bind_address=('mydb1.fsd23rqr.us-east-1.rds.amazonaws.com', 3306),
local_bind_address=('0.0.0.0', 3307)
) as tunnel:
print "Connection Established"
print pd.read_sql_query(
"select 'Hello' from dual",
db.connect(
host='127.0.0.1',
port=tunnel.local_bind_port,
user='my_db_username1',
passwd='****************',
db='my_db_instance_1'
)
)
Run Code Online (Sandbox Code Playgroud)
产生:
About to try connecting
Connection Established
Hello
0 Hello
Run Code Online (Sandbox Code Playgroud)
但现在我需要使用不同的数据库和堡垒组合。这个堡垒有 …
我连接到远程数据库。为此,我正在使用 sshtunnel。我没有问题连接到数据库并访问数据。
我的问题是,我的脚本在所有操作之后都没有退出。我创建连接、下载数据、打印数据、停止 ssh 连接、打印“退出”。该脚本在 server.stop() 行停止工作并且不打印“停止”。我需要中断它以停止运行此代码。
这是代码:
from sshtunnel import SSHTunnelForwarder
from sqlalchemy import create_engine
import pandas as pd
server = SSHTunnelForwarder(
('host', 22),
ssh_password='password',
ssh_username='username',
remote_bind_address=('127.0.0.1', 3306)
)
server.start()
engine = create_engine(
'mysql+mysqldb://db_user:db_pass@127.0.0.1:{}/temps'.format(server.local_bind_port))
query = 'SELECT * FROM temp'
df = pd.read_sql(query, engine)
print(df.head())
print(df.tail())
server.stop()
print('stop')
Run Code Online (Sandbox Code Playgroud)
此脚本不打印“停止”。
问题:为什么这段代码不能停止工作?
我加了
trace_logger = create_logger(loglevel="TRACE")
在此之后,我注意到一些有趣的事情。带有数据传输的代码不包含一行:传输已关闭。我在没有发送 sql 查询的情况下检查了我的代码,脚本已正确完成。
2018-10-07 18:41:43,274| WAR | MainThrea/0967@sshtunnel | Could not read SSH configuration file: ~/.ssh/config
2018-10-07 18:41:43,275| INF | MainThrea/0993@sshtunnel | 0 …Run Code Online (Sandbox Code Playgroud) 我有一个带有ArchLinux和Python的Vagrant框,该框针对每个项目使用虚拟环境(通过使用特定的Python版本)。我希望配置VSC来运行/调试这些Python项目。我已经挂载了包含我的项目的目录(使用sshfs),所以我不必担心同步。
使用PyCharm时,配置仅在其IDE中。如何使用SSH为VSC配置它?使用Python需要其他哪些插件?
提前致谢。
PS1:PyCharm是一个很棒的工具,但是它占用大量资源,RAM接近1GB。
PS2:我已经阅读了这篇文章,但是对我来说还不清楚,一个例子更有用。
python configuration remote-debugging ssh-tunnel visual-studio-code
我试图通过SSH连接到远程服务器mongoDB并进行了所提供的配置
import tunnel from 'tunnel-ssh';
const config = {
username: 'username',
Password: 'password',
host: process.env.SSH_SERVER, //192.168.9.104
port: 22,
dstHost: 'localhost',
dstPort: process.env.DESTINATION_PORT, //27017
localHost: '127.0.0.1',
localPort: 27018
};
Run Code Online (Sandbox Code Playgroud)
这是已定义的配置,在这里我需要连接到远程服务器192.168.9.104。因此,将特定的主机选择为SSH主机。提供了相同的用户名和密码。并且建立的连接如下。
class DB {
initDB() {
tunnel(config, (error, server) => {
if (error) {
console.log('SSH connection error: ' + error);
}
const url = 'mongodb://127.0.0.1:27018/myDBname';
mongoose.connect(url, { useNewUrlParser: true });
mongoose.plugin(toJson);
mongoose.plugin(setProperties);
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'DB connection error:'));
db.once('open', function() {
console.log('DB connection successful');
});
});
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当调用db.init()函数时,将弹出以下错误消息 …
ssh-tunnel ×10
ssh ×4
python ×2
jupyter ×1
macos-sierra ×1
mongodb ×1
mongoose ×1
multi-factor-authentication ×1
node.js ×1
pandas ×1
postgresql ×1
pycharm ×1
python-2.7 ×1
python-3.x ×1
tunnel ×1
ubuntu-14.04 ×1
user-profile ×1