ssh远程登录介绍:
为了实现客户端登录远程服务器,一般都使用ssh协议进行操作。ssh是一种加密登录的网络协议。本文主要介绍使用ssh实现用户名密码登录远程主机、用户名秘钥登录、配置快捷登录(本文采用mac环境,window应该需要安装一些工具,这里不做介绍)。
密码登录:
直接打开终端,键入如下命令登录:
ssh 用户名@服务器IP地址
若端口不为默认值的话则使用如下命令:
ssh 用户名@服务器IP地址 -p 端口号
使用此种方式如果能够连接成功服务器的话,会提示你输入密码,输入密码成功后,会提示登录成功。此种方式每次登录都会输入密码,而且也不安全,下面介绍使用秘钥登录实现加密的免密码登录,方便安全,推荐。
秘钥登录:
过程:首先在客户端创建秘钥对,再把创建的公钥复制到服务器家目录下,再将公钥字符串追加在家目录的.ssh目录的authorized_keys(ssh认证文件)文件末尾。
创建秘钥
ssh加密方式有rsa和dsa两种,使用两种方式其中一种都可以。本文使用rsa。
首先打开本地终端,执行ssh-keygen命令创建本地秘钥对(如本地已经生成,请忽略此步骤):
ssh-keygen -t rsa -C "xxxx@xx.xxx"
说明:
-t 指定秘钥类型(rsa,dsa两种)默认是rsa。可选
-C 注释文字,一般多用邮箱。可选
一路回车即可。其中两次是让你输入使用公钥的密码,不输入即不使用密码。
之后会在家目录的隐藏文件夹.ssh(即~/.ssh)下生成id_rsa私钥和id_rsa.pub公钥两个秘钥文件。
复制公钥到服务器
使用scp将本机公钥复制到服务器家目录
scp -P 端口号 ~/.ssh/id_rsa.pud 用户名@服务器IP地址:~/id_rsa.pub
其中若没有修改默认端口的话 -P 端口号 可以不写,前面为本机公钥地址,后面为复制到服务端地址。
此过程中如果出现权限报错的问题的话,可以使用如下命令修改文件与操作权限
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
再用密码登录服务器,使用cat将复制过来的公钥字符串追加到authorized_keys文件末尾
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
上面步骤都完成之后,在客户端再使用下面命令登录
ssh 用户名@服务器IP地址 -p 端口号
第一次登录需要输入密码,验证成功登录之后,之后再使用该命令登录就不需要输入密码了。
快捷登录:
上面实现的加密的秘钥登录之后,输入的一长串命令是可以实现不用输入密码登录了,但是还是太麻烦了,其实我们可以在客户端.ssh文件下的config(~/.ssh/config)配置文件中设置服务器别名,之后用别名登录。可以通过vim命令修改config文件为下面格式:
之后登录服务器就可以使用别名登录了:
ssh 别名
初次写文章分享学习过程中的记录,
本人水平有限,如有错误还请指正。