1. 程式人生 > >用SCP無需輸入密碼傳輸檔案

用SCP無需輸入密碼傳輸檔案

在Linux環境下,兩臺主機之間傳輸檔案一般使用scp命令,通常用scp命令通過ssh獲取對方linux主機檔案的時候都需要輸入密碼確認。

不過通過建立信任關係,可以實現不輸入密碼。

這裡假設A的IP:192.168.10.1

B的IP:192.168.10.2

需要從A免密碼輸入複製檔案至B。

1. 在主機A上執行如下命令來生成配對金鑰: 
ssh-keygen -t rsa 
按照提示操作,注意,不要輸入passphrase。提示資訊如下 
Generating public/private rsa key pair. 
Enter file in which to save the key (/root/.ssh/id_rsa):  
Enter passphrase (empty for no passphrase):  
Enter same passphrase again:  
Your identification has been saved in /root/.ssh/id_rsa. 
Your public key has been saved in /root/.ssh/id_rsa.pub. 
The key fingerprint is: 
ff:8e:85:68:85:94:7c:2c:46:b1:e5:2d:41:5c:e8:9b  

[email protected] 

2. 將 .ssh 目錄中的 id_rsa.pub 檔案複製到 主機B 的 ~/.ssh/ 目錄中,並改名為  authorized_keys。 
scp .ssh/id_rsa.pub 192.168.10.2:/root/.ssh/authorized_keys 

以後從A主機scp到B主機就不需要密碼了。

3.使用此方法需要注意:複製的兩臺計算機需要用相同的賬戶名,這裡都是用的root。為了安全起見,需要在兩臺機器中建立相同的賬號,然後在A上用su命令切換至賬號下,執行第1步,第二步中複製檔案時可能.ssh目錄並不存在,需要手動建立。

在第2步中如果機器中已經存在authorized_keys檔案,則需注意,這個檔案可以包含多個SSH驗證資訊,這時可用 cat >>命令將驗證檔案內容附加上去。

比如複製到scp .ssh/id_rsa.pub 192.168.10.2:/root/.ssh/a.pub

然後執行cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys

注意:如果提示

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0670 for '/home/Administrator/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/Administrator/.ssh/id_rsa": bad permissions
表示你的祕鑰檔案許可權不對,執行
chmod 600 ~/.ssh/id_rsa
即可

看到這裡可能就有人問了,我需要ssh到多個伺服器怎麼辦,請看這裡:

相關推薦

SCP無需輸入密碼傳輸檔案

在Linux環境下,兩臺主機之間傳輸檔案一般使用scp命令,通常用scp命令通過ssh獲取對方linux主機檔案的時候都需要輸入密碼確認。 不過通過建立信任關係,可以實現不輸入密碼。 這裡假設A的IP:192.168.10.1 B的IP:192.168.10.2

從Windowsscp往linux裡傳輸檔案

有時候會需要從windows往linux伺服器copy檔案,直接copy的話會比較麻煩,可以用scp進行傳輸。 因為windows系統本身不支援ssh協議,所以,要想上面的命令成功執行,必須在windows客戶端安裝ssh for windows的客戶端軟體,

兩臺伺服器之間免密碼傳輸檔案scp ssh

以下是第一種方法: 1、在Client上root使用者執行ssh-keygen命令,生成建立安全信任關係的證書。 Client端 ssh-keygen -t rsa Generating public/private rs

shell中scp自動輸入密碼

shell``` #!/bin/bash des_pass=testtest expect -c " spawn scp target/aaa-0.0.1.war [email protected]/* */:/home/GameUser/MagicvesselUserWeb/aaa-releas

expect 普通戶自動輸入密碼到root下,執行命令

expect案例:當前服務器取消了直接使用root登錄服務器,只能使用普通用戶先登錄,然後再su - root 執行root下的命令。 shell腳本如下: #!/usr/bin/expect -fset password {root_password}spawn su - rootexpect "

使scp不用輸入密碼

有些時候,我們在複製/移動檔案 到另一臺機器時會用到scp,因為它比較安全。但如果每次都要輸入密碼,就比較煩了,尤其是在script裡。不過,ssh有另一種用金鑰對來驗證的方式。下面寫出我生成密匙對的過程,供大家參考。第一步:生成密匙對,我用的是rsa的金鑰。使用命令 "s

在MAC SecureCRT中無需輸入密碼登入遠端Linux主機

1、在Mac本地建立公鑰執行命令:ssh-keygen -t rsa -C “[email protected]” 輸入後,會提示建立.ssh/id_rsa、id_rsa.pub的檔案,其中第

07_編寫腳本:提示輸入用戶名和密碼,腳本自動創建相應的賬戶及配置密碼。如果戶不輸入賬戶名,則提示必須輸入賬戶名並退出腳本;如果戶不輸入密碼,則統一使用默認的 123456 作為默認密碼

密碼 passwd 退出 默認 腳本 自動創建 stdin echo user #!/bin/bashread -p "請輸入用戶名: " user#使用-z 可以判斷一個變量是否為空,如果為空,提示用戶必須輸入賬戶名,並退出腳本,退出碼為 2#沒有輸入用戶名腳本退出後,使

linux,scp傳輸檔案expect工具免密碼輸入shell指令碼

expect是一個自動互動功能的工具。expect是開了一個子程序,通過spawn來執行shell指令碼,監測到指令碼的返回結果,通過expect判斷要進行的互動輸入內容(send)。簡單舉個列子說,

git 生成公鑰 使用命令行無需輸入戶名密碼(windows)

每次 con window 令行 找到 ima 輸密碼 技術 圖片 之前設置過一次,後來就忘記了,今天改完密碼之後發現命令行clone時驗證身份失敗,重新設置公鑰,記錄一下 1. 由於之前設置過公鑰,所以不用輸入用戶名密碼就可以執行git命令。現在密碼變了,取消公鑰,最簡單

sshpass結合ssh和scp可以自動完成密碼登錄,無需手動輸入密碼

結合 1.2 HP 遠程 UC 本地文件 touch 機器 使用方法   使用方法:   1、sshpass -p 123456 ssh [email protected] "touch file" 遠程創建文件file   2、sshpass -p 123456 scp fil

如何在shell指令碼中實現 scp 檔案的時候不手動輸入密碼

在shell指令碼中實現 scp 檔案的時候不手動輸入密碼的指令碼如下: #!/usr/bin/expect -f set password 密碼 spawn scp 使用者名稱@目標機器ip:拷貝檔案的路徑 存放本地檔案的路徑  set timeout 300 

Linux ssh遠端登入及scp傳輸檔案

ssh ssh命令是openssh套件中的客戶端連線工具,可以給予ssh加密協議實現安全的遠端登入伺服器。 語法 scp (選項) 遠端主機 常用選項 -1:強制使用ssh協議版本1 -2:強制使用ssh協議版本2 -4:強制使用IPv4

scp後臺傳輸檔案rsync進行斷點續傳

1. scp後臺傳輸檔案 用nohup命令 $nohup scp file [email protected]:/file > nohup.out 2>&1  輸入

linux下scp命令在兩個服務器之間傳輸文件,利用php_scp函數進行文件傳輸

evc 在操作 path send 返回值 遠程 false cal 上傳 在linux下利用scp進行文件傳輸, 從服務器下載文件 scp [email protected]/* */:/path/filename /path/filename 上傳

ubuntu 系統戶sudo免輸入密碼

sudo 輸入密碼 use nop 系統 class col user div cd /etc/sudoers.dvi nopasswd4sudo username ALL=(ALL) NOPASSWD:ALL ubuntu 系統用戶sudo免輸入密碼

django實現登錄時候輸入密碼錯誤5次鎖定戶十分鐘

redirect 記錄鎖 res contain objects title 開始 dir 解密 django實現登錄時候輸入密碼錯誤5次鎖定用戶十分鐘 在學習django的時候,想要實現登錄失敗後,進行用戶鎖定,切記錄鎖定時間,在網上找了很

批量添加戶,並且第一次登陸需要輸入密碼

Linuxif [ ! -f account.txt ]; then echo "The file do not exist!" exit 1 fi username=$(cat account.txt) for username in $username do useradd $

ssh采expect實現自動輸入密碼登錄、拷貝

cep .html tro from 效果 方式 目標 led 交互 1. 引言 最近做了一個項目,需要頻繁與另一臺主機進行文件的傳輸;中間想到了很多方式:FTP、samba、curl等,但是還是感覺scp最好用。 SCP使用教程可參閱:http://www.jb51.

windows postgresql定時備份 無需手動輸入密碼

enable 無需 mce ken for 路徑 amp http dbd PostgreSQL 自動備份,並刪除10天前的備份文件的windows腳本. 第一步,創建腳本,命名back.bat文件 @ECHO OFF @setlocal enableextensions