16个终极SSH技巧

所以你认为你完全了解OpenSSH ?测试你的排骨与这16个专家提示和技巧。

所以你认为你完全了解OpenSSH ?在这16个专家提示和技巧中测试你的能力,从识别中间的猴子攻击到道路战士安全到附加远程屏幕会话。跟随倒计时到历史上最好的OpenSSH命令!

黑客入侵LInux源代码站点

(在非标准端口上运行SSH]

SSH提示#16-14:检测MITM攻击

当您第一次登录到远程计算机时,系统会询问您是否要接受远程主机的公钥。那你怎么知道你该不该去呢?如果有人实施了一次成功的中间人攻击,并向您提供了一个假密钥,以便他们可以劫持您的会话并窃取您的所有秘密,您应该如何知道呢?你可以知道,因为当新的密钥对被创建时,它们也会创建一个独特的指纹和随机图像:

rsa -C newserver -f .ssh/newkey

生成公钥/私钥对。

输入密码(空无密码):

再次输入相同的密码:

您的身份已保存在.ssh/newkey中。

你的公钥已经保存在的.ssh / newkey.pub。

关键指纹为:

44:90:8c: 62:6e: 53:3b: d8:1a: 67:34:2f: 94:02: e4:87 newserver

密钥的随机图像是:

+ - [RSA 2048] ---- +

| OO +的.o。|

|。= B o. |

| E X +。|

| B B ..|

| .* o S |

| .|

||

||

||

+-----------------+

SSH提示#16:检索SSH密钥的指纹和随机图像

如果你在创建新的加密密钥时复制了这个,那么你可以随时提取密钥的指纹和随机图像进行比较,以确保它们没有改变:

$ ssh-keygen -lvf键名

SSH提示#15:查看在known_hosts中所有的指纹和randomart图片

你可以看到他们都在你的~ / . ssh / known_hosts文件:

$的ssh - 凯基-lvf的〜/ .ssh / known_hosts中

SSH提示#14:验证服务器密钥

您可以通过配置查看任何一台电脑你记录的指纹和randomart在/ etc您的客户端计算机上/ SSH / ssh_config中。简单地取消对VisualHostKey选项并将其设置为yes:

VisualHostKey是的

然后登录任何远程计算机进行测试:

ssh user@host2美元

主键指纹是66:a1:2a:23:4d:5c:8b:58:e7:ef:2f:e5:49:3b:3d:32

+ - 256 (ECDSA) - - - +

||

||

| .o。|

| + =…|

|。+ o。年代|

|○○OO |

|。+ . .+ |

| .o . .E o |

| .o.+ . |

+-----------------+

user@host2的密码:

显然,您需要一种安全的方法来获取您想要登录的计算机的指纹和随机图像的验证副本。就像一个手写的打印副本,加密的电子邮件,scpcommand,安全的ftp,通过电话阅读…成功的MITM攻击的风险很小,但是如果您能够找到一种相对轻松的验证方法,它将是一种廉价的保险。

SSH技巧#13:附加到远程GNU屏幕会话

可以通过SSH远程附加GNU屏幕会话;在本例中,我们将在host1上打开一个GNU屏幕会话,并从host2连接到它。首先打开并分离一个名为testscreen的主机1上的屏幕会话:

主机1〜$屏幕-S testscreen

然后从您的分离屏幕会议与键盘组合键Ctrl + A + d:

[从3829.testscreen脱离]

您可以验证它仍然存在与此命令:

主机1〜$屏幕-ls

有一个屏幕:

3941.testscreen (03/18/2012 12:43:42 PM)(拆装)

1套接字在/var/run/screen/ s -host1

然后,从主机2重新连接到您的屏幕会话:

主机1〜$的ssh -t特里@ uberpc屏幕-r testscreen

你不必命名屏幕如果只有一个会话。

SSH提示#12:启动远程屏幕会话

如果没有正在运行的屏幕会话,该怎么办?不用担心,因为你可以远程启动一个:

host1 ~ $ ssh -t user@host2 /usr/bin/screen -xRR

SSH提示#11:SSHFS优于NFS

sshfs的比NFS与多台机器单用户更好的。我继续运行,因为它是我工作的一部分总是被测试的东西的计算机的牛群。我就像电脑的漂亮友好的牛群。有些人收集猫王板,我收集计算机。无论如何打开文件一次一个通过SSH会话进行编辑是缓慢的;与SSHFS可以挂载从远程计算机整个目录。首先创建一个目录来安装在您的sshfs的份额:

mkdir remote2美元

然后挂载任何远程目录,你想这样:

$ sshfs的用户@ REMOTE2:/ home / user中/文件REMOTE2 /

现在,您可以像浏览本地目录一样浏览远程目录,并读取、复制、移动和编辑您想要的所有文件。关于sshfs的美妙之处在于,您所需要的只是运行在远程机器上的sshd,以及安装在客户机pc上的sshfs命令。

SSH提示#10:登录并在一个步骤中运行一个命令

您可以登录并建立您的SSH会话,然后运行命令,但是当你有一个单一的命令来运行,为什么不消除步骤,并且用一个命令做呢?假设你要断电远程计算机;您可以登录并在一个步骤中运行以下命令:

$ ssh用户@remotehost sudo poweroff

这适用于任何命令或脚本。(本例假设您设置了一个具有适当限制的sudo用户,因为允许root用户通过SSH登录被认为是不安全的做法。)如果您想运行一个长而复杂的命令,又不想每次都输出它,该怎么办?一种方法是将它放在Bash别名中并使用它。另一种方法是将复杂的长命令放在文本文件中,然后根据技巧9运行它。

SSH提示#9:将长命令放在文本文件中

把你的长命令在一个纯文本文件在您的本地PC,然后使用它的方式登录和运行远程PC:

@ carla@local:~$ ssh user@remotehost ";`cat filename.txt` "

注意,要使用直接的引号,而不是从Web页面复制的花哨的引号;要使用反引号,而不是单撇号。

SSH提示#8:复制公钥的简单方法

ssh-copy-id命令并不像它应该的那样出名,这是一个遗憾,因为它是一个很好的节省时间的方法。这个漂亮的命令将您的公钥以正确的格式复制到远程主机,并复制到正确的目录。它甚至有一个安全检查,不会让你错误地复制私钥。指定你想复制哪个键,像这样:

$ ssh-copy-id -i .ssh/id_rsa。酒吧user@remote

SSH提示#7:给SSH密钥唯一的名称

说到关键的名字,你知不知道你能说出你想要他们什么?这有助于当你给予一些远程计算机,像这样的例子,然后创建私有密钥Web的管理和公共密钥web-admin.pub:

$ ssh-keygen -t rsa -f .ssh/web-admin

SSH技巧#6:给SSH密钥提供有用的注释

另一个有用的方法是用注释来标记键:

rsa -C "downtown lan webserver" -f .ssh/web-admin

然后可以读取附加到公钥末尾的注释。

SSH提示#5:读取的公钥评论

$少的.ssh / web-admin.pub

将AAAAB3NzaC1yc2EAAAADAQABAAABAQC1

市中心的局域网网络服务器

SSH提示#4:使用特定于服务器的密钥登录

然后,当您登录时,指定使用哪个键与-i开关:

$ ssh -i .ssh/web管理。酒吧user@webserver

SSH提示#3:快速简单的known_hosts密钥管理

我喜欢这个,因为它是一个很好的节省时间,它保持我的~/。ssh/known_hosts文件tidy:使用ssh-keygen从~/中删除主机密钥。ssh / known_hosts文件中。当远程机器获得新的SSH密钥时,您将收到一个警告,当您尝试登录时,该密钥已经更改。使用这个比手动编辑文件和计算要删除的正确行要快得多:

$ ssh-keygen -R远程主机名

电脑本应该让我们的生活更简单,而当它们做到这一点时,那是多么美好。

SSH提示#2:SSH公路战士通道

当您在酒店和咖啡店的互联网上时,一个良好的安全SSH隧道使您的在线冒险更安全。要实现这一功能,您需要一个可以控制的服务器作为中心节点,以便从hotspot错误中解脱出来。我在家里设置了一个服务器来接受远程SSH登录,然后使用SSH隧道通过它路由流量。这对于很多不同的任务都很有用。例如,我可以使用我的普通电子邮件客户端发送电子邮件,而不是与Web邮件纠缠或更改SMTP服务器配置,而且我的笔记本电脑和家庭服务器之间的所有通信都是加密的。首先创建通道到您的个人服务器:

@homeserver.com -L 9999:homeserver.com:25 -N

这将移动机器上的端口9999绑定到远程服务器上的端口25。远程端口必须是您配置服务器监听的任何端口。然后将您的邮件客户端配置为使用localhost:9999作为SMTP服务器,这样您就可以正常工作了。我使用Kmail,它允许我配置多个SMTP服务器帐户,然后在发送消息时选择要使用哪个帐户,或者简单地用鼠标单击来更改默认帐户。您可以将其应用于您通常在自己的基地使用的任何类型的服务,并且当您在路上时需要访问这些服务。

#1喜爱的SSH提示:回避傻网限制

明智的假设是,任何公共互联网都是不可信的,所以你也可以限制你的网上冲浪。我的#1 SSH技巧让你通过不值得信任的网络,可能有偷窥者,并通过任何障碍,无拘无束的网上冲浪。就像技巧2一样,你需要一个你控制的服务器作为一个安全的中继;首先设置一个SSH隧道到这个服务器:

卡拉@酒店:〜$的ssh -D 9999 -Ccarla@homeserver.com

然后将您的Web浏览器配置为使用端口9999作为SOCKS 5代理。图1显示了在Firefox中的情况。

一个简单的方法来测试,这是您的家庭或企业网络上。建立通道到相邻PC和浏览一些外部网站。当这个作品回去改变SOCKS端口号打错了。这应该防止你的Web浏览器无法连接到任何网站,你就会知道您设置隧道正确。

如何知道要使用哪个端口号?大于1024的端口号不需要root特权,所以在您的笔记本电脑或您在旅行中使用的任何设备上使用它们。总是首先检查/etc/services以找到未分配的端口。要绑定到的远程端口必须是服务器正在监听的端口,并且必须有一条通过防火墙的路径才能到达它。

要学得更多,试试优秀临OpenSSH的迈克尔·斯坦克和我自己的Linux网络食谱有更多关于安全远程管理的内容,包括SSH、OpenVPN和远程图形会话,以及配置防火墙。

这篇文章中,“16个终极SSH技巧”,最初发表于ITworld。最新的这新闻,分析以及如何渡,遵循ITworld上推特Facebook的

现在读:PostgreSQL的速成课程寻找USB接口的8个奇怪的地方你从未听说过的10个最好的开源应用

这个故事,“16名终极SSH黑客”最初发表ITworld

加入网络世界社区有个足球雷竞技appFacebook的LinkedIn对最重要的话题发表评论。
相关:

版权©2012Raybet2

工资调查:结果在