SSH免密登陆操作及相关文件作用

本人在学习大数据时,需要配置集群分布式环境,其中包括hadoop100到hadoop103共四台服务器,为方便管理,需要在本地(Mac OS系统)终端中登陆四台服务器,故配置了ssh免密登陆

1. SSH免密登陆原理

2. 操作步骤

现在假设主机A要通过ssh免密登录主机B,步骤如下

# 两台机器最好都安装openssh-server / openssh-client
$ sudo apt install openssh-server
$ sudo apt install openssh-client

# 查看ssh服务是否开启
$ netstat -tlp | grep ssh 

# 在主机A上通过RSA算法生成密钥对
$ ssh-keygen -t rsa # 此时在~/.ssh文件夹中生成了两个文件 id_rsa(私钥)和id_rsa.pub(公钥)

# 上传公钥到主机B的~/.ssh/authorized_keys
$ ssh-copy-id username@hostB

#(以下为可选内容)
# 配置服务器别名文件
$ vim ~/.ssh/config

~/.ssh/config文件内容如下所示,其中

  • Host:服务器别名【任意取】
  • HostName:服务器IP地址 (此项目中通过VMware 的NAT得到)/ 主机名 / 域名【注意:如果是主机名/域名,则必须在/etc/hosts文件中写好对应的「ip-域名」映射关系】
  • User:用户名称
  • Port:SSH端口号
  • IdentityFile:主机A(此例中为本地Macbook)的私钥文件

配置完成后,大功告成,在主机A的终端输入

$ ssh 服务器别名 # 如果没配置config文件,则是$ ssh username@hostB

如果出现警告:警告: setlocale: LC_CTYPE: 无法改变区域选项 (UTF-8)(warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory)

解决方法是在/etc/environment加入如下代码,之后重新ssh登录即可

LC_ALL=zh_CN.UTF_8
LANG=zh_CN.UTF_8

3. ~/.ssh/ 目录下各文件的作用

id_rsa(私钥)

本机中通过RSA算法生成的私钥,与生成的公钥为一对。用于连接其他服务器

id_rsa.pub(公钥)

本机中通过RSA算法生成的公钥,与生成的私钥为一对。用于连接其他服务器

authorized_keys(授权文件)

记录了其他主机用于连接本机服务器的公钥,如果主机A的公钥在本机的authorized_keys文件中,则主机A可免密登陆本机服务器

known_hosts

记录了本机访问过的主机的公钥。下次访问对应主机时,OpenSSH会核对公钥,不同则发出警告,避免受到DNS Hijack之类的攻击

config(配置文件)

非必需,一开始没有config文件。它记录了ssh一些配置信息(主机别名/主机名或IP/用户名/SSH端口/IdentityFile),如果未配置config文件,则ssh连接其他主机需要通过命令ssh username@hostB,配置后,可直接ssh host

参考资料

Linux中.ssh目录下各文件的作用

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值