linux服务器无密码登录不了,设置ssh无密码登录linux服务器的方法
每次登錄測試服務器,ssh登錄總是需要輸入密碼。登錄的少還行,登錄的多了,多一行命令都是多余的。
rsa認證登錄方式
制作密鑰對
在客戶端(本地機器)終端下輸入以下命令
ssh-keygen -t [rsa|dsa]
rsa和dsa代表不同的算法
例如:
ssh-keygen -t rsa
一直回車就對了(不用設置密碼)
將會生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub(如果用dsa則生成id_dsa,id_dsa.pub)
生成位置在/root/.ssh/文件夾下(我用的是root用戶所以在root下,生成過程會有提示文件位置)
.ssh 是隱藏文件夾 使用 ls -a查看
將公鑰放到服務器指定位置
方法一、直接復制
1、將公鑰復制到服務器的root用戶下的.ssh文件夾(用哪個用戶登錄就復制到哪個用戶下的.ssh文件夾下)
scp /root/.ssh/id_rsa.pub [email?protected]:/root/.ssh/
2、安裝公鑰
登錄到服務器cd /root/.ssh/
cat id_rsa.pub >> authorized_keys
方法二、使用ssh-copy-id命令復制(推薦)
一個命令直接就ok了
驗證
不用輸入密碼則成功,否則失敗
注意事項
上面操作測試過是沒有問題的
linux的版本和使用的用戶不同會有差別的。
如果出現問題可以考慮以下兩點
1、id_rsa.pub和authorized_keys的文件權限問題
chmod 600 authorized_keys
chmod 700 ~/.ssh
2、ssh的配置文件
vim /etc/ssh/sshd_config
#啟用 RSA 認證,默認為yes
RSAAuthentication yes
啟用公鑰認證,默認為yes
PubkeyAuthentication yes
#root用戶ssh登錄
PermitRootLogin yes
(這些配置我都是沒有修改的,我的是redhat7.2)
自定義寫個簡單shell腳本
在常用文件夾下創建個文件
touch 164.sh
編輯文件
vim 164.sh
#添加內容
ssh [email?protected]
保存退出
:wq
增加用戶的執行權限
chmod u+x 164.sh
搞定 結合tab鍵使用更爽喲
./164.sh
expect命令免密登錄方式
可能你覺得需要操作服務器系統不好,當然也可以只在本地操作。
使用expect命令只需要本地操作,前提是你本地有expect這個命令
1、創建一個文件
touch expectssh.sh
添加下面內容,將用戶 、ip、密碼修改成你自己的
#!/usr/bin/expect -f
set username root
set hostname 172.16.0.164
set password 123456
spawn ssh [email?protected]$hostname
set timeout 1
expect { "yes/no"
{send "yes\r";exp_continue}
}
expect "[email?protected]$hostname's password:"
send "$password\r"
interact
2、添加expectssh.sh執行權限
chmod u+x expectssh.sh
3、執行命令
expect expectssh.sh
(1、必須使用 expect 命令執行2、你可以再包一層 使用bash解析去執行)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。
文章標題: 設置ssh無密碼登錄linux服務器的方法
文章地址: http://www.ykljj.com/xitong/231474.html
總結
以上是生活随笔為你收集整理的linux服务器无密码登录不了,设置ssh无密码登录linux服务器的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洪兴股份是做什么的
- 下一篇: linux 内核启动调试,内核开发和调试