• What?
    ssh 是secure shell(安全外壳协议)的简写,是建立在应用层和传输层基础上的安全协议,专为远程登陆会话和其他网络服务提供安全性的协议。利用ssh协议可以有效地防止远程管理过程中的信息泄露问题。

  • Why?
    传统的一些网络协议,比如ftp、pop、telnet等本质来说都不是安全的,因为他们在网络上以明文的方式,很可能会被抓取到导致泄露,进而可能会出现诸如中间人攻击之类的问题。而使用ssh时,可以把所有传输的数据进行加密,而且在传输时还可以进行压缩。
    总而言之,ssh提供了一种避免明文传输用户名密码和消息以至于必要信息泄露的方式方法。

  • How?
    之前在windows下,更多的是直接使用类似之类的东东,后来到了ubuntu和mac下,一方面是因为xshell没有跨平台的版本,另一方面,后两者自带ssh,配置一下也就ok了。
    1.基本配置
    使用自带ssh的话,图方便安全就得自己生成ssh的密钥对了。常用命令的话就是(~/.ssh目录下操作)

    ssh-keygen -t rsa

    默认会自动生成rsa和rsa.pub两个文件,当使用ssh连接到服务器时会默认使用这对密钥。
    若要连接至服务器,则可直接ssh username@server即可,可能会需要输入密码进行登陆
    2.config配置
    而当想要使用不同密钥去连接不同服务器时,就需要配置_config文件_了,示例:
    同样是在~/.ssh下vim config

    #配置格式:
    #Host host别名
    #   HostName    host名称(ip或者域名)
    #   Port    端口
    #   User    用户名
    #   IdentityFile    ~/.ssh/私钥文件名
    #
    Host a.com
    HostName www.a.com
    Port    22
    User    urUserName
    IdentifyFile ~/.ssh/urPrivateKey
    

    这样,之后需要ssh某台服务器时,直接ssh a.com即可,而不用非要输入urUserName@www.a.com这种形式了。不过这种配置可能依旧需要输入密码。
    3.不用密码
    如果想要不再输入密码的话,实际就需要让服务器信任自己机器的公钥了。做法也很简单,只需要将ssh-keygen生成的密钥对中的公钥交给服务器,然后让其加入到自己的authorized_keys中。我一般都是直接把.pub文件scp到服务器的.ssh目录下,然后登陆服务器,直接将公钥追加至文件的结尾

    cat urPublickKey >> authorized_keys
    

    DNOE.
     

  • To be continued…