SSH tunnel几个参数

ssh -qTfnN -D 7070 username@remotehost


All the added options are for a ssh session that’s used for tunneling.
-q :- be very quite, we are acting only as a tunnel.
-T :- Do not allocate a pseudo tty, we are only acting a tunnel.
-f :- move the ssh process to background, as we don’t want to interact with this ssh session directly.
-N :- Do not execute remote command.
-n :- redirect standard input to /dev/null.
In addition on a slow line you can gain performance by enabling compression with the -C option.

 


### Python Paramiko SSH 连接教程 Paramiko 是一个用于实现 SSHv2 协议的纯 Python 实现库,支持加密连接、文件传输等功能。以下是基于提供的引用内容和专业知识构建的一个完整的 SSH 连接示例。 #### 安装依赖 在使用 Paramiko 前,需安装该库。可以通过 pip 工具完成安装: ```bash pip install paramiko ``` #### 示例代码:基本 SSH 连接 以下是一个简单的 SSH 连接脚本,展示了如何通过 Paramiko 使用用户名密码方式登录到远程服务器并执行命令: ```python import paramiko def ssh_connect(server_ip, username, password, command): try: # 创建SSH客户端实例 client = paramiko.SSHClient() # 自动添加主机密钥策略(不推荐用于生产环境) client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接到远程服务器 client.connect( hostname=server_ip, port=22, username=username, password=password ) # 执行指定命令 stdin, stdout, stderr = client.exec_command(command) # 获取标准输出和错误输出 output = stdout.read().decode('utf-8') error = stderr.read().decode('utf-8') if output: print(f"Output:\n{output}") if error: print(f"Error:\n{error}") except Exception as e: print(f"An error occurred: {e}") finally: # 关闭SSH连接 client.close() if __name__ == "__main__": server_ip = 'your_ssh_server_ip' # 替换为目标服务器IP地址 username = 'your_ssh_username' # 替换为SSH用户名 password = 'your_ssh_password' # 替换为SSH密码 command = 'ls -l /tmp/' # 要执行的命令 ssh_connect(server_ip, username, password, command) ``` 此代码实现了以下几个功能: 1. **创建 SSH 客户端** 并设置自动接受未知主机密钥策略[^1]。 2. **连接至远程服务器** 使用 `connect` 方法,并提供必要的参数如 IP 地址、端口、用户名和密码[^2]。 3. **执行命令** 利用 `exec_command` 函数运行指定指令,并捕获其输出或错误信息[^3]。 #### 高级应用:通过 SSH 中转访问 MySQL 数据库 如果需要进一步扩展功能,比如通过 SSH 隧道访问远程数据库,则可以参考以下代码片段: ```python import pymysql.cursors import sshtunnel with sshtunnel.SSHTunnelForwarder( ('your_ssh_server_ip', 22), # SSH服务器地址及端口号 ssh_username='your_ssh_username', ssh_password='your_ssh_password', remote_bind_address=('localhost', 3306) # MySQL服务监听地址与端口 ) as tunnel: connection = pymysql.connect( host='127.0.0.1', user='your_mysql_username', password='your_mysql_password', database='your_database_name', cursorclass=pymysql.cursors.DictCursor, port=tunnel.local_bind_port ) with connection.cursor() as cursor: sql_query = "SELECT * FROM your_table LIMIT 5" cursor.execute(sql_query) result = cursor.fetchall() for row in result: print(row) connection.close() ``` 这段代码利用了 `sshtunnel` 库来建立本地转发器,从而安全地通过 SSH 访问远程 MySQL 数据库。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值