歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 10.10與Fedora 14下使用scp實現文件傳輸

Ubuntu 10.10與Fedora 14下使用scp實現文件傳輸

日期:2017/2/28 16:03:41   编辑:Linux教程

實驗室裡的機子主要裝了兩種Linux,Ubuntu和Fedora,平時大家傳資料,都是用U盤拖來脫去,甚是不便,於是,今天就寫一篇教程,教大家如何使用Linux自帶的scp命令來實現文件傳輸。

1.首先要保證兩個機子間能ping通。例如一個的ip地址是192.168.82.1(查看本機ip:$ ifconfig),用戶名為citA,另一台機子的ip地址是192.168.82.2,用戶名為citB。

在citA的終端中輸入$ ping 192.168.82.2 ,如果返回

PING 192.168.82.2 (192.168.82.2) 56(84) bytes of data.
From 192.168.82.1 icmp_seq=1 Destination Host Unreachable
From 192.168.82.1 icmp_seq=2 Destination Host Unreachable
....

說明網絡連接有問題,請檢查網線,網卡等設備。如果返回

PING 192.168.82.2 (192.168.82.2) 56(84) bytes of data.
64 bytes from 192.168.82.2: icmp_req=1 ttl=64 time=0.229 ms
64 bytes from 192.168.82.2: icmp_req=2 ttl=64 time=0.215 ms
64 bytes from 192.168.82.2: icmp_req=3 ttl=64 time=0.224 ms

....

說明兩機連通,可以進行下一步操作。


2.使用scp命令傳文件。

例如將citA的/home/citA/Desktop/a文件傳到citB的/home/citB/Desktop/裡,有兩種方法:

(1)進入citA的Desktop目錄中

$ cd /home/citA/Desktop

然後執行scp命令

$ scp a [email protected]:/home/citB/Desktop

格式為

$ scp 文件名 接受端用戶名@接受端ip地址:接受端路徑


(2)或者在任意目錄下,輸入發送端的完整路徑

$ scp /home/citA/Desktop/a [email protected]:/home/citB/Desktop

格式為

$ scp 發送端路徑+文件名 接受端用戶名@接受端ip地址:接受端路徑


當然了,你要有對方用戶的密碼才可以。如果是文件夾,使用scp -r即可。如果想將當前目錄下所有文件夾全部發送,scp -r *就可以了。


搞定。。。

下面介紹下可能出現的錯誤及異常情況。

1.如果向fedora系統的機子傳送文件時出現

ssh: connect to host 192.168.82.15 port 22: No route to host lost connection

可能是由於fedora的系統默認關閉了傳輸文件的22端口導致的,我們用命令打開它,在接受端上輸入:

$ su

輸入密碼,進入最高權限,然後開啟22端口:

# iptables -I INPUT -p tcp --dport 22 -j ACCEPT

此時,再次嘗試傳輸命令,如果依舊報錯,還是進入接受端,在最高權限下,重啟它的sshd服務,注意要輸入完整路徑名:

# /etc/init.d/sshd restart

此時再次嘗試傳輸,應該會成功。


2.如果出現 Permission denied,這個問題主要是權限問題。

(1)首先檢查自己要發送的文件是否有自己可以執行的權限,使用

$ ls -l 文件名

查看,如果權限不足,可以使用

$ chmod 777 文件名

來提升文件權限。

(2)可能是路徑的權限問題

檢查自己是否具有向接受端路徑寫的權限,例如,當處在普通權限時,如果向接受端的 / 目錄下寫,就必定是Permission denie的。


3.對於 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!


是由於先前已經連接過此接受端,本機中就會存儲接受端的歷史信息,結果再次連接時接受端的信息出現了變化,與本機中存儲的歷史信息不符,導致的錯誤,只要將本機中存儲的歷史信息刪除即可。


按照報錯信息提示,進入/home/cit/.ssh/

$ cd /home/cit/.ssh/

使用vi編輯器或gedit打開known_hosts

$ vi known_hosts

$ gedit known_hosts

全部刪除裡面的信息即可,記住不是刪除這個文件,是打開文件,刪除裡面的信息。。。

至此,scp文件傳輸應該就可以搞定了。

Copyright © Linux教程網 All Rights Reserved