如何使用ssh进行安全的连接
MindTerm、socat 还有 VNC,哦,天哪!虽然能够远程工作一直都是系统程序员和管理员最喜欢的 Linux 优点之一,但设置远程访问却不是一件简单的事情。 选择合适的远程服务 紧接着的第二个话题便是本篇专栏文章的主题:安全性。 您的服务器在物理上应当是被隔离的,应当禁用所有不必要的联网访问,并且只能通过 ssh 或更好的方式访问服务器。特别值得一提的是,尽可能少使用实时的 telnet 、 ftp 、 rlogin 和 rsh 以及相关服务;它们实在是太危险了。 首先,您当然应该尝试一番。程序员和管理员本可以在正常的上班时间里在自己比较安静的工作场所工作,但是他们却喜欢强迫自己突击完成这些工作,这可是出了名的。您可别让自己成为这种行为的牺牲品!确信您进行的连接具有合法的业务目的,并非违规行为。 但是,如果您过去有这些组织问题,那么连接问题的答案便是使用 ssh。即使您原则上更依赖于虚拟专用网(VPN)而非 ssh,我还是认为出现紧急情况时,如若不能使用常规方法,那么设置 ssh 访问会比较谨慎些。VPN 仍然有些难以处理,并且需要依靠特别的硬件配置。如果您是通过客户机的网络(多半是使用普通桌面机器)呼叫主机的,则您可以进行的选择是极其有限的。 ssh 满足需要 好消息是 ssh 在这些限制的夹缝之中通常还能满足需要。即使您外出办事,但在公共接入点(比如网吧),您还是可能有足够的资源使 ssh 工作。 您或许不能依赖于自己的设备。说得严重些,带着任何比手持设备大的设备到处走,是另一个安全性风险;更糟的是,许多地方不准插入外来的硬件。您通常必须使用提供给您的硬件。 但是下载 puTTY、ssh 或 MindTerm 客户机一般都很快。而且我也喜欢那样做。任何具有足够的网络栈、可以连接到您的服务器室的主机,都可能有准许进行下载的 Web 浏览器。使用已经安装好的客户机要小心;对于某些人而言,将客户机替换成经过修改的、能捕获击键信息(或更糟的情况)的客户机实在是太容易了。 另一种方式是构造嵌入了 MindTerm 客户机作为 applet 的 Web 页面,这表面上看起来挺吸引人的。而我的经验告诉自己这种方法没什么用处。大多数地方都禁用 Java、或提供只具有旧的 Java 运行时引擎(JRE)的浏览器,或者采用别的方式来降低 applet 的便利性。如果我要使用 MindTerm,则只想下载和安装该客户机以及兼容的 JRE。对于构造针对最终用户的应用程序,applet 通常是一种好技术。applet 还适合进行只读配置。但是,我发现这种用法非常少。因此,为使自己的工作具有效率,不值得花时间去解决 applet 环境中可能存在的难题。我一直觉得,找到一个兆字节的空闲大容量存储器并在上面安装 ssh 客户机会更加方便。 您坐下一会后就应当安装新的 ssh 客户机并启动它。但是,这可能还不够。某些地方防火墙关闭了大多数端口,或者至少关闭了包括 ssh 的标准端口 22 在内的许多端口。 这里有另一种准备提供帮助的方法。在我的至少一台主机上,我希望让 sshd(ssh 守护程序)在通常被指派给常见因特网服务(比如 ftp、http、smtp 或 pop3)的端口上运行。即使是最严密的防火墙也要打开端口 21、8080、25 和 110 中的一个。将您的一台机器设置为捕获这样的通信,您就可以使它穿过大多数的防火墙。 这听起来是否象是非法闯入者在说话呀?我 不赞成滥用网络。经常有其它公司的雇员 邀请我使用他们的网络,虽然他们也知道,用敏感的方式(比如临时打开端口 22)更改他们的防火墙就公司制度而言是不可行的。我逐渐接受了这种认识:准备采用旁门左道也是当前专业实践的一部分,但我需要确保自己只以一种负责任的方式完成这个工作。 这样就启动了我的工作会话,然后:我下载引用 ssh 客户机,快速安装并启动它们,然后用 SSL 保护的密码往回验证我留在服务器室中运行的某个 sshd。 请注意,我仍然容易受到篡改过的主机的攻击。一个经过充分修改的桌面机器或一个警惕的窥视狂可以在击键信息到达 SSL 库之前将其记入日志。 这种情况的解决方案就是使用一次性密码(OTP)系统。到目前为止,在我看来 OTP 带来的麻烦多于安全性。OTP 给您自己带来的代价和收益肯定至少会略微有所不同。无论如何,回到日常的工作场所可能是更新密码的好时机。 使用标准部件 我希望 服务器诊所每个月都显示工作代码。在本文中,很难添加任何代码。我推荐的配置很简单,在标准的参考资料中都作了充分的记录。例如,要在第二个端口上添加 ssh 服务,只要将如下行:Port 8080 添加到现有的 /etc/ssh/sshd_config,然后重新启动 sshd。另一个方法是使用网络代理程序或端口转发器(比如 netcat 或 socat),将它指回本地主机(localhost)的标准 ssh 端口,这个方法在运行试验和调优日志记录或额外安全性方面很有用。 代理程序这里的上下文中的代理程序是一个小型转换程序,它只是让网络流量通过。如果我在端口 22 上设置了 sshd 服务器,并且希望在端口 110 上设置另一台 sshd 服务器,那么实现这个想法的一个方法是安装网络代理程序。这样的代理程序在端口 110 上用作服务器,接收来自外界的流量。它通过在端口 22 上充当客户机来处理这些分组。基本 sshd 服务器完成所有的实际工作;代理程序的作用只是从一个端口转换到另一个端口(可能在另一台主机上)。 这篇特别的专栏文章的真正价值并不在于深奥的代码,而只是在于传达了一个清晰的概念,您应该以此为目标来启用自己的远程服务。我已经尝试过许多方法。利用这些经验,尤其要了解 不要做什么,至少要了解在您首次设置服务器室时不要做什么:禁止 Telnet,不要让不用的服务一直开着,不用担心 applet(尤其不要担心 applet 签名),以及如若感到不对劲就不要进行远程登录。 另一方面,一定要使用标准部件。我已经尝试过许多聪明的想法,用于调整 ssh 协议或自己的防火墙,以阻止黑帽黑客(指专门利用网络技巧入侵网络进行破坏的人,译者注)。与这些想法所提供的安全性方面的小小增强相比,它们的维护比较困难,因此有些得不偿失。除非我编制一个明确的安全性项目的预算,并具有明确的长期目标,否则最好将时间花在使用 ssh 上,而不是花时间设法改进它。 采用以上步骤,您将拥有一个服务器室,它的安全性要比您只使用标准的 Linux 服务器安装时要好得多。您还能够从全球可以找到几乎所有的同步连接上远程管理它。
ssh 命令怎么用?
ssh命令用法:ssh+加要执行的命令,需在SSH 2客户端上使用。
1、SSH客户端版本查看。
有时需确认SSH客户端及其相应的版本号。使用ssh -V命令可以得到版本号。注意,Linux一般自带的是OpenSSH: 下面例子即表明该系统正在使用OpenSSH:
$ ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003。
下面的例子表明该系统正在使用SSH2:
$ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu。
2、用SSH登录到远程主机。
当第一次使用ssh登录远程主机时,会出现没有找到主机密钥的提示信息。输入"yes"后,系统会将远程主机的密钥加入到主目录下.ssh/hostkeys下,这样就可继续操作。
3、调试SSH客户端会话。
当ssh连接出现问题时,需通过查看调试信息来定位这些错误。使用v选项(注意:是小写的v),即可查看调试信息。
4、用SSH退出符切换SSH会话。
远程登陆到一台主机A,然后从A登陆到B,如希望在A上做操作,还得再开一个终端。
当使用ssh从本机登录到远程主机时,希望切换到本地做一些操作,然后再重新回到远程主机。这时,不需中断ssh连接,只需按照如下步骤操作即可:
当已经登录到了远程主机时,可能想要回到本地主机进行一些操作,然后又继续回到远程主机。
(1)登入远程主机:
localhost$ ssh -l jsmith remotehost。
(2)已连接远程主机:
remotehost$。
(3)要临时回到本地主机,输入退出符号:“~”与“Control-Z”组合。
当输入“~”不会立即在屏幕上看到,按下Control-Z并且按回车之后一起显示。如下,在远程主机中以此输入“~Control-Z”remotehost$ ~^Z [1]+ Stopped ssh -l jsmith remotehost localhost$。
(4)已经退回到本地主机,ssh远程客户端会话就在UNIX后台中运行,可向下面那样查看它:
localhost$ jobs [1]+ Stopped ssh -l jsmith remotehost。
(5)可将后台运行的ssh会话进程切换到前台,重新回到远程主机,而无需输入密码:localhost$ fg %1 ssh -l jsmith remotehost remotehost$。
5、用SSH退出字符会话,显示信息。
要取得一些关于当前会话有用信息,可按以下方式完成。这只能在SSH 2客户端上使用。
登录到远程服务器:localhost$ ssh -l jsmith remotehost。
在远程服务器上,输入ssh退出字符~并输入s。会显示出很多有关当前ssh连接的有用信息。
ssh怎么连接远程服务器
Mac端
打开Mac的终端 输入ssh 用户名@IP地址 -p 端口号,或者在程序坞中右键终端图标,选择新建远程连接,选择「安全Shell(ssh)」然后点击右边服务器下面的加号,在输入框中如远程连接的服务器的名称或IP地址,然后点击 好。在「安全Shell(ssh)」的服务器就可以看见你刚才添加的服务器,选中刚添加的服务器 用户输入框中输入远程服务器的用户名,点击连接。终端会新跳出一个窗口,输入远程服务器的用户密码即可完成连接。
Win端
打开cmd 输入ssh 用户名@IP地址 -p 端口号,或者使用putty,xshell第三方工具
安卓端
下载juicessh根据提示完成
如何使用SSH搭建本地代理
使用代理服务器上网:
HTTP代理服务器的设置方法,对于IE和FireFox设置略有不同。设置前需要先找一些可用的免费代理服务器地址。
IE的设置,打开IE浏览器,选择菜单栏的“工具/Internet选项...”。
这时候分两种情况,对于ADSL拨号用户来说,选择一个网络连接后,点“设置,选中代理服务器,填入地址和端口号。
对于局域网用户来说,需要点“局域网设置”,选中代理服务器,填入地址和端口号。
FireFox的设置和IE类似,打开FireFox浏览器,选择菜单栏的“工具/选项...”。
这时选择“高级/网络”,点设置,就出现下面的界面,就可以进行代理服务器的设置了,选中“手动配置代理”,然后填写代理服务器的地址和端口。
使用SOCKS代理服务器
SOCKS代理是目前功能最为全面,使用最为稳定的代理服务器,我目前上网就只用SSH搭建SOCKS代理服务器上网,访问网络没有任何限制。
用SSH搭建SOCKS代理上网,建议使用Firefox浏览器,因为Firefox支持SOCKS代理远程域名解析,而IE只能通过类似SocksCap这样的第三方软件实现,不是很方便。
配置Firefox浏览器
在Firefox设置SOCKS远程域名解析,主要是为了防止DNS污染,具体设置方法是,在Firefox地址栏中,输入 about:config ,按确认,修改里面的一项数值,改成 network.proxy.socks_remote_dns=true 就可以了。
然后,打开FireFox浏览器,选择菜单栏的“工具/选项...”。选择“高级/网络”,点设置,就出现下面的界面,就可以进行代理服务器的设置了,选中“手动配置代理”,然后在SOCKS主机上,填写代理服务器的地址127.0.0.1,端口1080,SOCKS类型选择“SOCKS V5”,这时Firefox就配置结束。
设置SSH
配置好了Firefox,接着配置SSH了,安全外壳协议(Secure Shell Protocol / SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。常用的SSH工具有开源软件PuTTY,支持SSH远程登录的主机可以实现socks5代理服务器的功能,不过在PuTTY中没有配置文件,需要手动设置才能实现,且无法保存,而PuTTY完整版自带的pLink可以实现命令行方式调用PuTTY实现SSH的加密通道。
具体的方法是,去PuTTY官方网站下载pLink这个文件,pLink的调用参数是:plink -C -v -N -pw 密码 -D 本地端口 远程用户@IP或域名:远程希望打开的端口。
新建一个文件,写入以下内容,另存为pLink.bat批处理文件,并放在Putty的安装目录内。
@plink -N Username@sshServer -pw Password -D 127.0.0.1:1080
将Username sshServer Password三处改为陆SSH服务器的用户名、服务器地址和密码。这个SSH帐号可以通过多种方法获得,例如用户购买了某些国外主机空间或VPS就会有SSH帐号,。
执行这个批处理文件,保持其窗口开启,一旦关闭窗口代理便失效。然后打开已经配置好127.0.0.1:1080的Socks5代理的Firefox浏览器,就可以使用SOCKS代理服务器上网了。
知识拓展:
代理服务器
代理服务器(Proxy Server)是网上提供转接功能的服务器,在一般情况下,使用网络浏览器直接去连接其他Internet站点取得网络信息时,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
比如想访问的目的网站是A,由于某种原因不能访问到网站A或者不想直接访问网站A(这样通过代理服务器网站A,对网站A而已可以隐藏身份,也就是不知道是谁访问的网站,而认为是代理服务器访问的),此时就可以使用代理服务器,在实际访问网站的时候,在浏览器的地址栏内和以前一样输入你要访问的网站,浏览器会自动先访问代理服务器,然后代理服务器会自动给转接到目标网站。
代理服务器作用
提高访问速度:通常代理服务器都设置一个较大的缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。
隐藏真实身份:上网者也可以通过代理服务器隐藏自己的真实地址信息,还可隐藏自己的IP,防止被黑客攻击。
突破限制:有时候网络供应商会对上网用户的端口,目的网站,协议,游戏,即时通讯软件等的限制,使用代理服务器都可以突破这些限制。
代理服务器主要类型
HTTP代理:最简单的一种代理形式,能够代理客户机的HTTP访问,上网浏览网页使用的都是HTTP协议,通常的HTTP代理端口为80、3128或8080端口。
SOCKS代理:SOCKS代理与HTTP等其他类型的代理不同,它只是简单地传递数据包,而并不关心是何种应用协议,既可以是HTTP协议,也可以是FTP协议,或者其他任何协议,所以SOCKS代理服务器比其他类型的代理服务器速度要快得多。SOCKS代理又分为SOCKS4和 SOCKS5,二者不同的是SOCKS4代理只支持TCP协议(即传输控制协议),而SOCKS5代理则既支持TCP协议又支持UDP协议(即用户数据包协议),还支持各种身份验证机制、服务器端远程域名解析(解决DNS污染就靠这个了)等。SOCK4能做到的SOCKS5都可得到,但SOCKS5能够做到的SOCKS则不一定能做到。目前SOCKS5是最常用的一种SOCKS代理。
ssh命令如何使用?
ssh命令用于服务器的远程控制,一般情况下只要用“ssh IP地址”这样的格式就可以了,例如:“ssh 192.168.10.10”,可参考:第9章 使用ssh服务管理远程主机。
如何通过ssh远程登录linux系统
深入了解ssh协议与sshd服务程序的理论知识,掌握对Linux系统的远程管理方法以及对Linux系统中服务程序的配置方法,实践操作基于密钥验证的sshd服务程序远程验证登陆,并学习使用screen服务程序实现远程管理Linux系统的不间断会话等技术,基本完全拥有了对Linux系统的配置管理能力。
配置网卡服务:配置网卡参数(需要使用vim编辑器来将网卡配置文件中的ONBOOT参数修改成yes就可以保证网卡会在系统重启后依然生效了。Linux系统中的服务配置文件修改过后并不会对服务程序立即产生效果,要想让服务程序获取到最新的配置文件内容,咱们还需要手动的重启一下相应的服务)-创建网络会话(使用类似nmcli的命令来管理NetworkManager服务。nmcli是一款基于命令行终端的网卡网络配置工具,它不仅能够让咱们轻松的查看网卡信息或网络状态,还可以管理网卡会话功能,更能够查看到网卡设备的具体详细信息。nmcli命令配置过的网卡会话和参数会直接写入到配置文件中永久生效)-绑定两块网卡(mode0平衡负载模式:平时两块网卡均工作,且自动备援,采用交换机设备支援;mode1自动备援模式:平时只有一块网卡工作,故障后自动替换为另外的网卡;mode6平衡负载模式:平时两块网卡均工作,且自动备援,无须交换机设备支援。);
远程控制服务:配置sshd服务(SSH(Secure Shell)是一种能够提供安全远程登录会话的协议,也是目前远程管理Linux系统最首选的方式,因为传统的ftp或telnet服务是不安全的,它们会将帐号口令和数据资料等数据在网络中以明文的形式进行传送,这种数据传输方式很容易受到黑客“中间人”的嗅探攻击,轻则篡改了传输的数据信息,重则直接抓取到了服务器的帐号密码。想要通过SSH协议来管理远程的Linux服务器系统,咱们需要来部署配置sshd服务程序,sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法——基于口令的安全验证,指的就是咱们一般使用帐号和密码验证登陆,基于密钥的安全验证,则是需要在本地生成密钥对,然后将公钥传送至服务端主机进行的公共密钥比较的验证方式,相比较来说更加的安全。因为在Linux系统中的一切都是文件,因此要想在Linux系统中修改服务程序的运行参数,实际上也是在修改程序配置文件的过程,sshd服务的配置信息保存在/etc/ssh/sshd_config文件中,运维人员一般会把保存着最主要配置信息的文件称为主配置文件,而配置文件中有许多#(井号)开头的注释行,要想让这些配置参数能够生效,咱们需要修改参数后再去掉前面的井号才行。在红帽RHEL7系统中sshd服务程序已经默认安装好并启动了,咱们可以使用ssh命令来进行远程连接,格式为“ssh [参数] 主机IP地址”,退出登陆则可执行exit命令)-安全密钥验证(加密算法是对信息进行编码和解码的技术,它能够将原本可直接阅读的明文信息通过一定的加密算法译成密文形式,密钥即是密文的钥匙,包括有私钥和公钥之分,在日常工作中如果担心传送的数据被他人监听截获到,就可以在传送前先使用公钥进行加密处理,然后再进行数据传送,这样只有掌握私钥的用户才能解密这段数据,除此之外其他人即便截获了数据内容一般也很难再破译成明文信息。总结来说,日常生产环境中使用密码进行口令验证终归存在着被骇客暴力破解或嗅探截获的风险,如果正确的配置密钥验证方式,那么一定会让您的sshd服务程序更加的安全。第1步:在客户端主机中生成“密钥对”并将公钥传送到远程服务器中:第2步:把客户端主机中生成好的公钥文件传送至远程主机:第3步:设置服务器主机只允许密钥验证,拒绝传统口令验证方式,记得修改配置文件后保存并重启sshd服务程序。第4步:在客户端主机尝试登陆到服务端主机,此时无需输入密码口令也可直接验证登陆成功。详细的图文介绍可参考linuxprobe.com/chapter-09.html)-远程传输命令-不间断会话服务-管理远程会话-会话共享。需要仔细研究操作步骤,一步一个脚印操作。