当您需要远程管理计算机时,SSH是一个救星,但是您知道您也可以上传和下载文件吗?使用SSH密钥,您可以不必输入密码而将其用于脚本!
这个过程可以在Linux和Mac操作系统上运行,前提是它们被正确配置为SSH访问。如果您使用的是Windows,那么可以使用Cygwin获得类似Linux的功能,并且稍加调整,SSH也可以运行。
Secure copy是一个非常有用的命令,而且非常容易使用。命令的基本格式如下:
scp [opti***] original_file destination_file
最大的问题是如何格式化远程部分。为远程文件寻址时,需要按以下方式进行:
user@server:path/to/file
服务器可以是URL或IP地址。后跟冒号,然后是相关文件或文件夹的路径。让我们看一个例子。
scp –P 40050 Desktop/url.txt [email protected]:~/Desktop/url.txt
这个命令的特点是[-P]标志(注意它是大写的P)。这允许我指定一个端口号,而不是默认的22。这对我来说是必要的,因为我配置系统的方式。
接下来,我的原始文件是“url.txt文件在一个叫做“桌面”的目录中。目标文件位于“~/Desktop”中/url.txt文件与“/user/yatri/Desktop”相同/url.txt文件”. 此命令由远程计算机“192.168.1.50”上的用户“yatri”运行。
如果你需要做相反的事情呢?类似地,您可以从远程服务器复制文件。
在这里,我将一个文件从远程计算机的“~/Desktop/”文件夹复制到我的计算机的“Desktop”文件夹。
要复制整个目录,需要使用[-r]标志(注意,它是小写的r)。
也可以组合标志。而不是
scp –P –r …
你可以这样做
scp –Pr …
这里最困难的部分是制表符完成并不总是有效的,因此让另一个终端运行SSH会话是很有帮助的,这样您就知道应该把东西放在哪里。
安全拷贝很好。你可以把它放到脚本中,让它备份到远程计算机。问题是你可能并不总是在附近输入密码。而且,老实说,把你的密码放在一台你可以随时访问的远程计算机上是一件非常痛苦的事情。
嗯,我们可以通过使用密钥文件来使用密码。我们可以让计算机生成两个密钥文件,一个是属于远程服务器的公共文件,另一个是属于您的计算机并需要安全的私有文件,这些文件将被用来代替密码。很方便吧?
在计算机上,输入以下命令:
ssh-keygen –t rsa
这将生成两个键并将它们放入:
~/.ssh/
私钥名为“id\u rsa”和“id_rsa.pub公司“为您的公钥。
输入命令后,系统将询问您保存密钥的位置。您可以按Enter键使用上述默认值。
接下来,您将被要求输入密码短语。按Enter键将此项留空,然后在请求确认时再次执行。下一步是将公钥文件复制到远程计算机。您可以使用scp执行以下操作:
公钥的目标位于远程服务器上的以下文件中:
~/.ssh/authorized_keys2
随后的公钥可以附加到这个文件中,很像~/.ssh/known\u hosts文件。这意味着,如果您想在此服务器上为您的帐户添加另一个公钥,您将复制第二个id的内容_rsa.pub公司文件放入现有授权的\u keys2文件的新行中。
这不是比密码更不安全吗?
在实际意义上,不是真的。生成的私钥存储在您正在使用的计算机上,它永远不会被传输,甚至不会被验证。此私钥仅与该公钥匹配,并且需要从具有私钥的计算机启动连接。RSA非常安全,默认使用2048位长度。
实际上,这在理论上与使用密码非常相似。如果有人知道你的密码,你的安全系统就会消失。如果有人拥有您的私钥文件,则任何具有匹配公钥的计算机都将失去安全性,但他们需要访问您的计算机才能获取该文件。
这能更安全吗?
您可以将密码与密钥文件结合使用。按照上面的步骤操作,但是输入一个强密码短语。现在,当您通过SSH连接或使用SCP时,您将需要正确的私钥文件以及正确的密码短语。
一旦您输入一次密码短语,在您关闭会话之前,不会再要求您输入密码短语。这意味着第一次使用SSH/SCP时,需要输入密码,但所有后续操作都不需要输入密码。一旦您从您的计算机(而不是远程计算机)中注销或关闭终端窗口,则必须再次输入。这样,你就不会真的牺牲安全性,但你也不会一直为密码而烦恼。
我可以重用公钥/私钥对吗?
这真是个坏主意。如果有人发现了你的密码,而你对你的所有帐户使用相同的密码,那么他们现在可以访问所有这些帐户。同样,您的私钥文件也是超级机密和重要的。(有关更多信息,请查看电子邮件密码泄露后如何恢复)
最好为您要链接的每台计算机和帐户创建新的密钥对。这样,如果你的一个私钥被发现,那么你只会在一台远程计算机上泄露一个帐户。
注意所有私钥都存储在同一个位置也非常重要:在计算机上的~/.ssh/中,可以使用TrueCrypt创建一个安全的加密容器,然后在~/.ssh/目录中创建符号链接。取决于我在做什么,我用这种超级偏执超级安全的方法来让我的头脑放松。
你在脚本中使用过SCP吗?你用密钥文件代替密码吗?在评论中与其他读者分享你的专业知识!
...。然而,在此之前,值得考虑的是第六种选择,以及它是如何绝对错误的方式。 ...
...。它之所以成为远程服务器管理的首选是有原因的。学习如何通过SSH远程管理Linux服务器,从连接到安装软件和文件传输。 ...
...,Kali Linux提供了扩展道德黑客技能所需的一切。下面是如何将Kali Linux加载到Raspberry Pi 3上的。 ...
...几率现在大大降低了。在本文中,您了解了rsync是什么,如何生成和安装SSH密钥,如何在~./.SSH/config文件中定义服务器,如何同步本地和远程目录,以及如何通过crontab自动化整个过程。今后,所有必需的文件将始终与远程服务器...
... 但是如果你没有合适的显示器呢?你将如何使用它?一种解决方案是使用旧的Android平板电脑作为Raspberry-Pi显示器。 ...
...置是默认值。现在,让我们看看SSH监狱的设置。 相关:如何使用gedit在Linux上以图形方式编辑文本文件 配置监狱 监狱可以让你在fail2ban的监控中进出连接类型。如果默认设置与要应用于监狱的设置不匹配,可以为bantime、findtime和...
...本身值得一篇文章。很方便,我们有一个给你。下面介绍如何创建和安装SSH密钥。 相关:如何从Linux Shell创建和安装SSH密钥 完全禁用密码验证 当然,使用SSH密钥的逻辑扩展是,如果所有远程用户都被迫采用它们,则可以完全关...
...密钥访问远程登录。它们比密码更安全。我们将向您展示如何在Linux中生成、安装和使用SSH密钥。 密码怎么了? secureshell(SSH)是一种加密协议,用于在远程Linux或类似Unix的计算机上登录用户帐户。通常,这类用户帐户使用密...