这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
ssh 是一种网络shell协议,用于远程登录到另一台计算机上。它使用TLS/SSL协议加密所有传输的数据,因此安全性很高。通过ssh,可以让服务器像本地一样使用。 使用ssh连接首先要安装ssh客户端,然后在本地执行ssh命令,连接到远程服务器。一般来说机器会自带ssh客户端,如果没有,可以通过包管理器安装。 ssh 远程登陆的命令格式如下:
ssh [options] user@host
options 的花样其实很多,比如正向端口转发,反向端口转发,ssh跳板机等。 user则是远程服务器的用户名,host则是远程服务器的地址。 初次登陆一般会要求记录指纹,以便于下次登陆时进行校验。输入yes即可。 之后一般会要求输入密码。 为了避免输入密码,一般我们会使用密钥对来进行登陆。首先在本地生成密钥对,然后将公钥上传到远程服务器上。之后就可以使用密钥对来进行登陆了。 生成密钥对的命令如下:
ssh-keygen -t rsa
他会给几个选项,一般直接回车就行了。生成的密钥对会保存在~/.ssh/目录下,其中id_rsa是私钥,id_rsa.pub是公钥。
如果都是linux的话,一般这里还有简化的命令,直接执行ssh-copy-id user@host就可以了,可以不用手动上传公钥了。
windows的话,需要想办法把公钥上传到远程服务器上。可以使用scp,也可以复制粘贴。
总之呢,需要把公钥添加到远程服务器的~/.ssh/authorized_keys文件中。
scp的话就直接执行scp /.ssh/id_rsa.pub user@host:/.ssh/authorized_keys就可以了。
复制粘贴的话,可以使用ssh登陆到远程服务器,然后执行cat >> ~/.ssh/authorized_keys,然后把公钥粘贴进去,按ctrl+d结束输入。
需要注意的是,authorized_keys文件的权限要设置为不可以写,只可以读。否则会导致登陆失败。
chmod 600 ~/.ssh/authorized_keys
这样就可以使用密钥对来进行登陆了。
ssh user@host
你会发现,这次登陆不需要输入密码了。