每次登錄測(cè)試服務(wù)器,ssh登錄總是需要輸入密碼。登錄的少還行,登錄的多了,多一行命令都是多余的。
rsa認(rèn)證登錄方式
制作密鑰對(duì)
在客戶端(本地機(jī)器)終端下輸入以下命令
ssh-keygen -t [rsa|dsa]
rsa和dsa代表不同的算法
例如:
一直回車(chē)就對(duì)了(不用設(shè)置密碼)
將會(huì)生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub(如果用dsa則生成id_dsa,id_dsa.pub)
生成位置在/root/.ssh/文件夾下(我用的是root用戶所以在root下,生成過(guò)程會(huì)有提示文件位置)
.ssh 是隱藏文件夾 使用 ls -a查看
將公鑰放到服務(wù)器指定位置
方法一、直接復(fù)制
1、將公鑰復(fù)制到服務(wù)器的root用戶下的.ssh文件夾(用哪個(gè)用戶登錄就復(fù)制到哪個(gè)用戶下的.ssh文件夾下)
scp /root/.ssh/id_rsa.pub root@172.16.0.164:/root/.ssh/
2、安裝公鑰
登錄到服務(wù)器cd /root/.ssh/
cat id_rsa.pub >> authorized_keys
方法二、使用ssh-copy-id命令復(fù)制(推薦)
一個(gè)命令直接就ok了
ssh-copy-id root@172.16.0.164
驗(yàn)證
不用輸入密碼則成功,否則失敗
注意事項(xiàng)
上面操作測(cè)試過(guò)是沒(méi)有問(wèn)題的
linux的版本和使用的用戶不同會(huì)有差別的。
如果出現(xiàn)問(wèn)題可以考慮以下兩點(diǎn)
1、id_rsa.pub和authorized_keys的文件權(quán)限問(wèn)題
chmod 600 authorized_keys
chmod 700 ~/.ssh
2、ssh的配置文件
vim /etc/ssh/sshd_config
#啟用 RSA 認(rèn)證,默認(rèn)為yes
RSAAuthentication yes
啟用公鑰認(rèn)證,默認(rèn)為yes
PubkeyAuthentication yes
#root用戶ssh登錄
PermitRootLogin yes
(這些配置我都是沒(méi)有修改的,我的是redhat7.2)
自定義寫(xiě)個(gè)簡(jiǎn)單shell腳本
在常用文件夾下創(chuàng)建個(gè)文件
編輯文件
文件內(nèi)容 ssh root@172.16.0.164
vim 164.sh
#添加內(nèi)容
ssh root@172.16.0.164
保存退出
:wq
增加用戶的執(zhí)行權(quán)限
搞定 結(jié)合tab鍵使用更爽喲
expect命令免密登錄方式
可能你覺(jué)得需要操作服務(wù)器系統(tǒng)不好,當(dāng)然也可以只在本地操作。
使用expect命令只需要本地操作,前提是你本地有expect這個(gè)命令
1、創(chuàng)建一個(gè)文件
添加下面內(nèi)容,將用戶 、ip、密碼修改成你自己的
#!/usr/bin/expect -f
set username root
set hostname 172.16.0.164
set password 123456
spawn ssh $username@$hostname
set timeout 1
expect { "yes/no"
{send "yes\r";exp_continue}
}
expect "$username@$hostname's password:"
send "$password\r"
interact
2、添加expectssh.sh執(zhí)行權(quán)限
3、執(zhí)行命令
(1、必須使用 expect 命令執(zhí)行2、你可以再包一層 使用bash解析去執(zhí)行)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。