`
totoxian
  • 浏览: 1079106 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

[转]Linux下实现自动设置SSH代理

阅读更多

作者:byvoid,他基于ibus开发了台湾注音输入法

原文 : http://www.byvoid.com/blog/linux-ssh-wall/#comment-4057

SSH的巨大价值体现在能够配置为代理服务器上。不像在Windows下每次还需要手动登录设置,Linux有很好的工具链能够实现自动设置SSH 代理,就是expect和ssh的联合使用,再加上proxychains,任何程序都可以享用代理了,在此我简单介绍一下。

首先要安装expect和openssh,如果没有,Ubuntu下输入apt-get install expect openssh-client即可安装。接下来需要写一段脚本:

#!/usr/bin/expect

set timeout 60
spawn / usr/ bin/ ssh -D 本地端口 -g 用户名@ 服务器
expect {
"password:" {
send "密码\r "
}
}
interact {
timeout 60 { send " " }
}

把上面的中文替换成对应内容,保存为一个脚本文件,例如sshproxy.sh,然后给它执行权限,chmod +x sshproxy.sh。在终端下运行./sshproxy.sh,就会发现自动登录到了服务器上,而且在本地建立了一个socks5代理。而且使用这段 脚本还不用担心会被踢,因为每60秒都要发送一个空格表示还在活动。如果把sshproxy.sh放到自动启动,那么以后每次启动都可以自动建立代理了。

这种方法建立的代理是socks5代理,在浏览器中很容易配置使用,但如果其他程序也想用它,而没有代理功能,该怎么办呢?在Windows下面的 确不好办(需要各种付费的、不稳定的代理转换工具),而在Linux下一切很简单,只需要一个名叫proxychains的工具。Ubuntu安装方法为 apt-get install proxychains。安装完以后要设置/etc/proxychains.conf文件,删除[ProxyList]后面的内容,然后添加

socks5  127.0.0.1 端口

把“端口”替换为SSH代理设置的端口。然后在想要运行的程序前加上proxychains ,即可使用代理。例如输入proxychains wget http://www.youtube.com -r,即可给wget设置SSH代理去下载。

正如其名,实际上proxychains是个代理链,我们可以设置多个代理,实现多级跳板连接。用在SSH代理上实在是大才小用了。

分享到:
评论

相关推荐

    Xshell通过SSH密钥、SSH代理连接Linux服务器详解

    本文将详细讲解如何通过SSH密钥对和SSH代理来连接Linux服务器,以实现更安全、便捷的管理。 首先,了解SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH密钥对认证是SSH...

    linux ssh的配置

    通过以上步骤,我们可以确保 Linux SSH 客户端配置正确,从而实现安全、高效的远程连接管理。 #### 3.3 服务端配置 服务端配置主要涉及 `/etc/ssh/sshd_config` 文件的修改。这个文件包含了 SSH 服务端的各种配置...

    ssh链接linux工具

    - `sshuttle`:在本地创建一个代理,通过SSH隧道转发所有网络流量,实现对远程网络的访问。 - `autossh`:自动检测并重新建立SSH连接,适用于需要长时间保持连接的情况。 - `.ssh/config`:SSH客户端的配置文件,...

    Python-MacOS和Linux上的命令行ssh管理工具

    为了提供更好的用户体验,我们还可以添加一些额外的功能,如自动检测并加载SSH代理(如ssh-agent)以处理密钥签名,或者集成到系统的keyring服务中,安全地存储和检索密码。 此外,我们可能需要处理错误和异常,...

    Linux_SSH命令大全

    ### Linux SSH 命令详解及实用技巧 在 Linux 系统中,SSH(Secure Shell)是一种用于远程登录和管理服务器的重要工具。本文将详细介绍与 SSH 相关的一些常用命令及其应用场景,帮助用户更好地掌握 SSH 的使用方法。...

    ssh连linux客户端

    在Linux环境下,常用的SSH客户端工具有`ssh`命令行工具和图形化界面的工具,如`PuTTY`(Windows平台)和`MobaXterm`(多平台)。`ssh`命令行工具是Linux和Unix系统的内置工具,用户只需输入`ssh 用户名@主机地址`...

    linux-远程管理SSH密钥以控制对主机的访问

    在Linux环境中,SSH(Secure Shell)是一种用于安全远程登录到服务器的标准协议,它允许用户无需暴露密码即可进行身份验证。SSH密钥对是SSH的一种安全机制,由公钥和私钥组成,提供了一种比传统密码更安全的身份验证...

    Debian-Linux安装和配置SSH-远程连接操作(linux系统).docx

    在 Debian Linux 中,SSH 服务器的配置文件位于 `/etc/ssh/` 目录下。我们可以使用以下命令编辑配置文件: ``` vi /etc/ssh/ssh_config ``` 在配置文件中,我们可以设置各种参数,例如: * `Host *`:设置所有...

    基于SSH实现登录的Demo

    4. **配置文件**:客户端和服务器都有各自的配置文件,例如客户端的`~/.ssh/config`和服务器的`/etc/ssh/sshd_config`,用于设置各种选项,如端口、认证方法等。 **步骤一:安装SSH** 在Linux系统中,可以通过包...

    C#的linux-ssh&scp;封装

    8. **配置选项**:允许设置SSH连接的参数,如超时时间、重试次数、代理设置等。 使用这样的库,开发者可以轻松地在C#应用程序中与Linux服务器进行交互,无需关心底层的SSH和SCP协议细节。这对于构建跨平台的系统...

    ssh简单实现

    本篇文章将详细探讨SSH的基本概念、实现原理以及如何在实际环境中设置和使用SSH。 1. SSH基础 SSH最初由Tatu Ylönen开发,现已成为Linux和Unix系统中的标准安全协议。它支持命令行接口的远程控制,允许用户执行...

    PuTTY V0.62 官方正式版 SSH自动登录调试工具 小巧实用的调试助手 Linux系统开发调试助手

    SSH自动登录是PuTTY的一项重要特性,允许用户保存会话配置,包括主机名、端口号、用户名等信息,甚至可以设置公钥认证,实现无密码登录。这极大地简化了重复连接的过程,提高了工作效率。用户只需一次配置,后续即可...

    linux SSh工具

    例如,可以创建端口转发,将本地端口的流量转发到远程服务器的特定端口,或者创建代理隧道,通过SSH连接作为 SOCKS 代理,实现对内网资源的安全访问。 6. **SSH会话管理**: 使用`screen`或`tmux`可以创建多窗口的...

    SSH Secure Shell

    6. 代理:SSH可以作为代理,用于连接其他服务,如HTTPS,通过SSH隧道实现安全访问。 在实际应用中,使用SSH Secure Shell通常涉及以下步骤: 1. 安装SSH服务器:在Linux服务器上安装SSH服务,如在Debian/Ubuntu...

    Debian-Linux安装和配置SSH-远程连接操作(linux系统).pdf

    * `StrictHostKeyChecking no`:如果设置成 “yes”,ssh 就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。 服务器端配置 在 `/etc/ssh/sshd_config` ...

    ssh 简单实用的ssh项目

    7. **SSH代理和跳板机**:了解如何设置SSH代理和使用跳板机,以管理多个远程服务器并确保通信安全。 8. **端口转发**:学习SSH的端口转发功能,可以实现本地端口到远程服务器端口的转发,这对于测试、调试和绕过...

    UnixLinux代理程序

    "Unix/Linux代理程序"是一种专门设计用于在这些操作系统上实现远程控制和监控的技术工具。这类代理程序允许管理员从远程位置安全地管理服务器,执行各种任务,如系统维护、性能监控、日志查看等,而无需实际坐在...

    Linuxssh配置[文].pdf

    - `ForwardAgent no`:禁止SSH代理转发。 - `ForwardX11 no`:禁用X11转发。 - `RhostsAuthentication no`和`RhostsRSAAuthentication no`:禁用基于rhosts的安全验证。 - `RSAAuthentication yes`:启用RSA算法进行...

    linux-linux下多服务器自动连接管理工具

    它使用YAML语言编写playbooks,实现自动化任务的定义,无需在目标主机上安装任何代理。 2. **Fabric**:Fabric是一个Python库,用于简化SSH任务的执行。它允许你定义一系列命令,然后在一个或多个远程服务器上批量...

Global site tag (gtag.js) - Google Analytics