您的位置:首页 > 运维架构 > Linux

SSH免秘钥登录方法解决

2017-06-06 11:19 218 查看
1.问题

  搭建集群或者工作中登陆跳板机经常需要做免秘钥互相登陆彼此服务器。需要在linux下 安装ssh-server具体命令如下

sudo apt-get install openssh-server

2. 安装准备工作

   假设A主机172.16.0.134想通过ssh登录到B主机172.16.0.135上。

   Ubuntu用户可以sudo apt-get install openssh-server来安装,其他Linux用户也安装openssh-server即可。

   我这里的处理方式是在“桥接模式”下处理的,当然,nat模式也可以用。

注意,在这里创建的两个用户都是spark(可以更改为自己的用户名)

    首,。用sudo  vi /etc/hostname下创建自己喜欢的名字,但不能与上面的用户名spark相同。用spark集群相当于在这里创建一个master节点,另一个机器为slave节点。

   然后,sudo  vi /etc/hosts里面添加ip以及hostname

#配置免免密钥登录

#hostname, hosts

sudo vi /etc/hostname

sudo vi /etc/hosts 

(ip 集群机器hostname)

reboot

   在各自的$HOME目录下都有一个.ssh隐藏目录。

3. 生成密钥

   在A主机,cd $HOME/.ssh

         运行命令ssh-keygen -t rsa  -P ""生成密钥。

         一路Enter键确认下来,当然遇到"yes/no?"一般选yes就好了。

4. 分发密钥(公钥)

   在A主机,首先,scp ~/.ssh/id_dsa.pub  userB@172.16.0.135:~/.ssh/id_dsa.pub

   此过程中需要输入B主机的userB的密码。

   然后,在B主机:cat ~/.ssh/id_rsa.pub  >> ~/.ssh/authorized_keys (将id_dsa.pub的内容追加到 authorized_keys中)

   并且,scp ~/.ssh/authorized_keys  userA@172.16.0.134:~/.ssh/authorized_keys

   最后,reboot。

5. 享受免登陆

   在A主机:ssh hostname(这里是B主机的hostname下自己创建的节点)

   在B主机:ssh hostname(这里是A主机的hostname下自己创建的节点)

6.参考文档

#SSH服务器安装(如果安装系统时未安装)

sudo apt-get install openssh-server

根据提示输入Y

putty或者其他SSH远程连接

#配置用户操作权限

sudo vi /etc/sudoers

已经存在——root ALL=(ALL:ALL) ALL

新增加——username(wzw)  ALL=(ALL:ALL) ALL

#配置java环境变量

sudo tar zxvf jdk1.8.... -C /usr/local/

cd /usr/local/

sudo mv jdk1.8... jdk ——可选

sudo chown cloud:cloud jdk -R

sudo chmod 777 -R jdk 

sudo vi ~/.bashrc

#JAVA VARIABLES

export JAVA_HOME=/usr/local/jdk1.7.0_75

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$JAVA_HOME/bin:$PATH

#使环境变量生效

source .bashrc

#配置免免密钥登录

#hostname, hosts

sudo vi /etc/hostname

sudo vi /etc/hosts 

ip 集群机器hostname

重启

#免密钥登录配置

ssh-keygen -t rsa -P ""

ls ~/.ssh -all

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh 目标机器hostname

exit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssh 服务器 集群 linux