SSH远程登录

准备工作

  • 本地生成public/private rsa key pair
  • 将本地/.ssh/下的id_rsa.pub公钥作为认证发放到远程主机host的/.ssh/下
    • ssh-copy-id -i ~/.ssh/id_rsa.pub user@host

基本用法

  • SSH主要用于远程登录。假定你要以用户名user,登录远程主机host,只要一条简单命令就可以了。
 $ ssh user@host
  • 如果本地用户名与远程用户名一致,登录时可以省略用户名。
 $ ssh host
  • SSH的默认端口是22,也就是说,你的登录请求会送进远程主机的22端口。使用p参数,可以修改这个端口。
  $ ssh -p 2222 user@host

上面这条命令表示,ssh直接连接远程主机的2222端口。

理解

  • 关于known_hosts (~/.ssh)
    • 当远程主机的公钥被接受以后,它就会被保存在本地文件$HOME/.ssh/known_hosts之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。
  • 关于 authorized_keys (~/.ssh)
    • 远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。
  • 口令登录
    • 1.远程主机收到用户的登录请求,把自己的公钥发给用户。2.用户使用这个公钥,将登录密码加密后,发送回来。3.远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
  • 公钥登录/免密登录
    • 用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

你可能感兴趣的:(SSH远程登录)