1. 程式人生 > >Ubuntu中在伺服器和本機之間傳遞檔案

Ubuntu中在伺服器和本機之間傳遞檔案

首先可以通過root進入到伺服器中,(登入方法在下面講解)為自己建立一個使用者。 
useradd的選項:

選項:  
  -b, --base-dir BASE_DIR   新賬戶的主目錄的基目錄  
  -c, --comment COMMENT         新賬戶的 GECOS 欄位  
  -d, --home-dir HOME_DIR       新賬戶的主目錄  
  -D, --defaults        顯示或更改預設的 useradd 配置  
  -e, --expiredate EXPIRE_DATE  新賬戶的過期日期  
  -f, --inactive INACTIVE       新賬戶的密碼不活動期  
  -g, --gid GROUP       新賬戶主組的名稱或 ID  
  -G, --groups GROUPS   新賬戶的附加組列表  
  -h, --help                    顯示此幫助資訊並推出  
  -k, --skel SKEL_DIR   使用此目錄作為骨架目錄  
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的預設值  
  -l, --no-log-init 不要將此使用者新增到最近登入和登入失敗資料庫  
  -m, --create-home 建立使用者的主目錄  
  -M, --no-create-home      不建立使用者的主目錄  
  -N, --no-user-group   不建立同名的組  
  -o, --non-unique      允許使用重複的 UID 建立使用者  
  -p, --password PASSWORD       加密後的新賬戶密碼  
  -r, --system                  建立一個系統賬戶  
  -s, --shell SHELL     新賬戶的登入 shell  
  -u, --uid UID         新賬戶的使用者 ID  
  -U, --user-group      建立與使用者同名的組  
  -Z, --selinux-user SEUSER     為 SELinux 使用者對映使用指定 SEUSER 

  

 

然後開始建立使用者:

useradd linc -m -s /bin/bash  #linc為使用者名稱
passwd linc                   #設定linc的密碼
userdel -r linc               #刪除linc

  

再此設定好密碼後,就可以切換使用者了,su linc。 
用exit也可以退出這個使用者到預設使用者。

Ubuntu

安裝 SSH(Secure Shell) 服務以提供遠端管理服務

sudo apt-get install ssh

SSH 遠端登入 Ubuntu 機

ssh [email protected]

將 檔案/資料夾 從遠端 Ubuntu 機拷至本地(scp)

scp -r [email protected]:/home/username/remotefile.txt .

將 檔案/資料夾 從本地拷至遠端 Ubuntu 機(scp)

scp -r localfile.txt [email protected]:/home/username/

將 檔案/資料夾 從遠端 Ubuntu 機拷至本地(rsync)

rsync -v -u -a –delete –rsh=ssh –stats [email protected]

:/home/username/remotefile.txt .

將 檔案/資料夾 從本地拷至遠端 Ubuntu 機(rsync)

rsync -v -u -a –delete –rsh=ssh –stats localfile.txt [email protected]:/home/username/

在 Windows 機上用 SSH 遠端登入 Ubuntu 機

下載 PuTTY 
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

如何在 Windows 機上拷貝 檔案/資料夾 從/到 遠端 Ubuntu 機

下載 FileZilla 
http://prdownloads.sourceforge.net/filezilla/FileZilla_2_2_18_setup.exe?download

ssh -X [email protected]

支援 SSH 圖形介面。也就是說,gedit 開啟和另存都是在伺服器端操作的。nautilus 開啟伺服器端的檔案管理器。這下就比只用命令列方便多了。不知道 windows 下的 putty 支援不。

ssh -X [email protected] ls

直接在伺服器端執行 ls 返回結果到客戶端

如何限制通過SSH遠端連線的使用者帳號

如,假如你啟用了SSH服務,那麼任何有有效帳號的使用者都可以遠端連線。這可能會導致一些安全問題,由於有一些遠端密碼破解工具可以嘗試常見的使用者名稱/密碼

備份SSH服務的配置檔案

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ORIGINAL

編輯配置檔案

sudo gedit /etc/ssh/sshd_config

  • 將引數 PermitRootLogin 由 yes 更改為 no。 超級使用者不能直接通過遠端聯機。
  • 新增引數 AllowUsers 設定遠端連線的使用者名稱 (用空格來分割) 。
  • 您也可以使用 DenyUsers for fine-grained selection of users.
  • If you enable the openssh server and you have no intention for now to enable remote connections, you may add AllowUsers nosuchuserhere to disable anyone connecting.

SSH 命令

ssh 命令可以用來在遠端機器上不經 shell 提示登入而執行命令。它的語法格式是: ssh hostname command。譬如,如果你想在遠端主機 penguin.example.net 上執行 ls /usr/share/doc 命令,在 shell 提示下鍵入下面的命令:

ssh penguin.example.net ls /usr/share/doc

3.2. 使用 scp 命令

  scp 命令可以用來通過安全、加密的連線在機器間傳輸檔案。它與 rcp 相似。

  把本地檔案傳輸給遠端系統的一般語法是:

  scp localfile [email protected]:/newfilename

  localfile 指定原始檔,[email protected]:/newfilename 指定目標檔案。

  要把本地檔案 shadowman 傳送到你在 penguin.example.net 上的賬號內,在 shell 提示下鍵入(把 username 替換成你的使用者名稱):

  scp shadowman [email protected]:/home/username

  這會把本地檔案 shadowman 傳輸給 penguin.example.net 上的 /home/username/shadowman 檔案。

  把遠端檔案傳輸給本地系統的一般語法是:

  scp [email protected]:/remotefile /newlocalfile

  remotefile 指定原始檔,newlocalfile 指定目標檔案。

  原始檔可以由多個檔案組成。譬如,要把目錄 /downloads 的內容傳輸到遠端機器 penguin.example.net 上現存的 uploads 目錄,在 shell 提示下鍵入下列命令:

  scp /downloads/* [email protected]:/uploads/

  3.3. 使用 sftp 命令

  sftp 工具可以用來開啟一次安全互動的 FTP 會話。它與 ftp 相似,只不過,它使用安全、加密的連線。它的一般語法是:sftp [email protected]。一旦通過 驗證,你可以使用一組和使用 FTP 相似的命令。請參閱 sftp 的說明書頁(man)來獲取這些 命令的列表。要閱讀說明書頁,在 shell 提示下執行 man sftp 命令。sftp 工具只在 OpenSSH 版本 2.5.0p1 以上才有。

SSH 概念

SSH是指Secure Shell,SSH協議族由IETF(Internet Engineering Task Force)的Network Working Group制定,SSH協議的內容SSH協議是建立在應用層和傳輸層基礎上的安全協議。

傳統的網路服務程式,如FTP、Pop和Telnet其本質上都是不安全的;因為它們在網路上用明文傳送資料、使用者帳號和使用者口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另一個人或者一臺機器冒充真正的伺服器接收使用者傳給伺服器的資料,然後再冒充使用者把資料傳給真正的伺服器。

SSH(Secure Shell)是目前比較可靠的為遠端登入會話和其他網路服務提供安全性的協議。利用SSH協議可以有效防止遠端管理過程中的資訊洩露問題。通過SSH,可以把所有傳輸的資料進行加密,也能夠防止DNS欺騙和IP欺騙。 
SSH,還有一個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、Pop、甚至為PPP提供一個安全的”通道”