sshpass 免密碼提示 ssh互信

2021-10-03 03:03:47 字數 1726 閱讀 9297

#!/bin/bash

#yuan scott yang version 1.0

#use sshpass transfer file or directory to another host

#需要登陸遠端伺服器的linux account 的密碼

password=

$1#需要登陸遠端伺服器的ssh服務寬口

ssh_port=

$2#需要登陸遠端伺服器的linux account 的名稱

linux_account=

$3#需要登陸遠端伺服器的ip位址或fqdn

host_name=

$4#使用ssh登入遠端伺服器,並在$linux_account使用者的 "~/.ssh/known_hosts" 加入當前機器的位址,皮面以後登入該遠端伺服器 還要 進行 金鑰詢問「yes」,「no」

password_verify=

`nohup sshpass -p $password ssh -p $ssh_port $linux_account@$host_name -o stricthostkeychecking=no >/dev/null 2>

&1 &

`$password_verify

if[ $# -eq 4 ];

then

$password_verifyif[

$? -eq 0 ]

;then

echo

"verify password success!"

if[ -d /root/oracle_script ]

then

#使用scp傳遞檔案

nohup sshpass -p $password

scp -p $ssh_port -r /root/oracle_script $linux_account@

$host_name:/home/oracle >/dev/null 2>

&1 &

echo

"the script has transfer success!"

#建立ssh 互信

nohup sshpass -p $password ssh-copy-id -i ~/.ssh/id_rsa.pub -p $ssh_port

$linux_account@

$host_name

>/dev/null 2>

&1 &

#這個休眠對程式很關鍵,主要作用處理ssh互信的時差問題。休眠0.5秒。

sleep 0.5

echo

"the ssh has connect success!"

else

echo

"transfer failed!please connect administrator to upload oracle_script file to servers."

exit

fielse

echo

"verify password failed!"

exit

fielse

echo

"please execute this script. eg: $0 password ssh_port linux_account host_name "

exit 0

fi#這個休眠對程式很關鍵,主要作用處理ssh互信的時差問題。休眠0.5秒。

sleep 0.5

設定 SSH 免密碼登陸 仍提示輸入密碼

1 生成金鑰 在根目錄下 cd 使用者根目錄 執行如下語句 ssh keygen t dsa p f ssh id dsa 以上是兩個單引號。2 將id dsa.pub 公鑰 追加到授權的key中 cat ssh id dsa.pub ssh authorized keys 3 將認證檔案複製到其它...

sshpass非互動SSH的密碼驗證

ssh登陸不能在命令列中指定密碼。sshpass的出現,解決了這一問題。sshpass用於非互動ssh的密碼驗證,一般用在sh指令碼中,無須再次輸入密碼 本機known hosts檔案中有的主機才能生效 它允許你用 p 引數指定明文密碼,然後直接登入遠端伺服器,它支援密碼從命令列 檔案 環境變數中讀...

centos配置ssh免密碼登入後,仍提示輸入密碼

1.生成公鑰和私鑰 2.匯入公鑰到認證檔案,更改許可權 3.測試 shell ssh keygen t dsa p f ssh id dsa 預設在 ssh目錄生成兩個檔案 id rsa 私鑰 id rsa.pub 公鑰 2.1 匯入本機 shell cat ssh id rsa.pub ssh a...