ssh使用别名和实现免密登录
ssh远程登录可以输入命令
# usr_name是用户名,ip_addr是ip地址,domain_name是域名
然后输入密码即可远程登录linux机器。
- 如何设置免密登录?
具体方法是将自己本地的公钥导入在服务器端~/.ssh/authorized_keys
首先在本地生成公钥和私钥
$ ssh-keygen
然后在本地会生成.ssh目录,目录中会生成id_rsa和id_rsa.pub文件,我们看一下目录结构
0 directories,
config是ssh配置文件
known_host是保存到公钥,ssh会把每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts
可以输入ssh-copy-ip直接上传公钥,也可以连接服务器以后直接复制id_rsa.pub粘贴到~/.ssh/authorized_keys文件中
$ ssh-copy-id user_name@ip_addr/domain_name
运行这条命令后服务器会在家目录下生成.ssh目录,把本地公钥写入authorized_keys文件,这里会需要再输入一次密码。
- 如何为服务器设置别名?
在本地.ssh目录下写入config文件
![b56a58e3347c5d0438fdb1416aafad06.png](https://img-blog.csdnimg.cn/img_convert/b56a58e3347c5d0438fdb1416aafad06.png)
然后可以通过
$ ssh alias_name
达到
$ ssh user_name@ip_addr/domain_name
的效果,并且实现免密登录。
ssh相关配置
- 设置是否可以使用密码登录,对指定用户是否可以使用密码登录?
禁止密码登录的目的是为了安全,可以设置只允许密钥登录,这样即使密码被泄露别人也无法登录。可以通过修改配置文件实现。
$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication 默认是yes,可以改为no,以禁止密码登录,但是必须注意,更改为no前必须确保已经设置通过秘钥实现免密登录。
对指定用户的设置可以在最后加上
#所有和此用户相关的配置都可以放在这里
比如同一个系统中有多个用户,可以配置所有用户可以密码登录,而root用户的PasswordAuthentication设置为no,root用户只能用秘钥登录保证安全。
- 端口设置
#port_number是想更改的端口号
设置以后,务必运行
$ sudo sudo service ssh restart
重启ssh服务,以使配置生效。
更改端口后连接Linux需要使用
$ ssh user_name@ip_addr/domain_name -p port_number
或者在.ssh/config中加入Port,继续使用别名
![650660879da43b446757cc9ffdef5d1e.png](https://img-blog.csdnimg.cn/img_convert/650660879da43b446757cc9ffdef5d1e.png)
scp传输文件和文件夹
#向远端传文件
$ scp
usr_name是用户名
ip_addr是ip地址
domain_name是域名
当不输入user_name的时候会默认使用本地用户名
dir是文件目录
file_name是文件名
如果传输的是文件夹需要加上-r参数,传送文件不用
同样的,每次输入ip地址或者域名都太复杂了,刚刚的~/.ssh/config文件还在,完全可以执行
[-r
进行传送文件。
远端dir如果值为空,默认传输到服务器用户的家目录下
[-r