关于SSH的若干

很早就想总结一篇关于SSH的文章。

SSH、SSH Key、SFTP、SCP等等一直都在用,但是很少总结和体会。本着烂笔头法则,总结一下。

SSH即Secure Shell,实际上就是在应用层的网络服务上的一种加密协议。起初应用于Unix/Linux的系统上。SSH主要采用公钥-密钥模式进行验证。目前最新版本是发布于2006年的2.x。

此处以SSH协议的三个应用来展开,大家可以根据协议在这三个应用中的具体实现来体会SSH本身。

SFTP/SCP:

这两个应用都是在日常工作中非常常用的工具。其原理就是通过SSH构建一条加密隧道,进行网络传输。它们本身仍然基于SSHD进程,没有属于自己的守护进程。共用22端口。需要注意的是,由于存在加解密,其传输效率低于FTP/CP

Win平台下,有很多软件集成了SFTP,诸如FileZilla,WinSCP,Xftp。而Unix类平台下,几乎没有好用的GUI工具(存疑?)SCP就是大杀器了。配合下文中所提到的登陆验证,日常传输个config什么的都很方便。

usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[[email protected]]host1:]file1 ... [[[email protected]]host2:]file2

SSH AUTHENTICATION:

自从转到macOS后,XShell这个神器就没法用了。我还专门发邮件给netsarang,但是无奈macOS的逼格之高(误)和人家的市场定位(大误)。还是只能安心用terminal了。但是真的很蛋疼啊,每次ssh [email protected]。。。特别麻烦。更甚的是我带着问题问几个macOS专业户,人家都表示,ssh就很好了呀。。。

不过最后也算找到了办法:

-首先配制一套用来登陆的SSH公钥密钥,这里不推荐全部地方都用一套密钥。

ssh-keygen -t rsa -C “[email protected]

-得到公钥和私钥后,scp到目标服务器

scp ~/.ssh/id_rsa_auth.pub [email protected]:~/.ssh/

#在目标服务器里

cat id_rsa_auth.pub >> ~/.ssh/authorized_keys

-在本机.ssh/下新建config如下

 

#Host别名

Host nickname

#Host IP

hostname x.x.x.x

#Host User

user root

#验证密钥

IdentityFile ~/.ssh/id_rsa_auth

-大功告成。

下次登陆的时候直接ssh nickname 你就会发现,无比爽快!

Enjoy :)

REFER:

https://www.ibm.com/developerworks/cn/aix/library/au-sshsecurity/

https://en.wikipedia.org/wiki/Secure_Shell

https://tools.ietf.org/html/draft-ietf-secsh-filexfer-13

关于SSH的若干

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据