ssh 远程登录


ssh 远程登录

SSH是一种网络协议,用于计算机之间的加密登录。

用户名密码登陆

ssh user@host

ssh host #本地用户名和服务器上用户名一致

指定端口登陆

ssh -p 5050 user@host

公钥登录

原理: 就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

步骤:

生成公钥

ssh-keygen

会在$HOME/.ssh/目录下 , 会新生成两个文件 : id_rsa.pub(公钥)和id_rsa(私钥) .

修改远程主机配置

打开远程主机的/etc/ssh/sshd_config 文件, 取消前面”#”注释

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

将公钥传送到远程主机上面

ssh-copy-id user@host
#or

ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

这条命令由多个语句组成,依次分解开来看:

  • ”$ ssh user@host”,表示登录远程主机;

  • 单引号中的mkdir .ssh && cat » .ssh/authorized_keys,表示登录后在远程shell上执行的命令:

  • ”$ mkdir -p .ssh”的作用是,如果用户主目录中的.ssh目录不存在,就创建一个;

  • ‘cat » .ssh/authorized_keys’ < ~/.ssh/id_rsa.pub的作用是,将本地的公钥文件~/.ssh/id_rsa.pub,重定向追加到远程文件authorized_keys的末尾。

Mac 上使用 ssh-copy-id

安装 ssh-copy-id

brew install ssh-copy-id

用法,同上

ssh-copy-id user@host