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