linux下sftp命令很多人都只是了解了語法卻不知道具體用法,下面由我為大家整理了linux下sftp命令的相關知識,希望對大家有幫助!
linux的sftp命令
1.常用登陸方式:
格式:sftp 《user》@《host》
通過sftp連接《host》,埠為默認的22,指定用戶《user》。
2.查看sftp支持的命令
使用help命令,查看支持的命令,如:
sftp》help
(其中命令前面有“l”表示本地執行,其他表示在所登錄的遠程主機上面執行)
3.基本的使用
sftp主要是用來傳輸文件的,包括上傳文件(從本機到遠程主機) ,下載文件(從遠程主機到本機)。
(1)文件下載
get [-Ppr] remote [local]
如:get test.cpp 。/Project/
將遠程當前目錄下的文件test.cpp下載到本地當前目錄的Project文件夾中。
(2)文件上傳
put [-Ppr] local [remote]
如:put /home/liu/Software/RHEL_5.5 x86_64.iso /home/xudong/Blog/
將本地/home/liu/Software/目錄下的ios文件傳送到遠程登陸主機的/home/xudong/Blog/目錄下。
(3)其他命令
可以使用命令還是有幾個的,如ls、lls;cd、lcd;pwd、lpwd等。具體查看help輸出吧。
sftp就是secure file transfer program,它基於ssh,用它在兩個Linux系統間傳遞文檔非常方便。
要使用sftp傳遞文檔,首先應該在伺服器端打開ssh服務,如果沒有打開,一般可以通過下面的命令打開:
# /etc/init.d/sshd start
然後就可以在客戶端通過sftp登錄伺服器端進行文檔傳遞操作,如下:
$ sftp [-oPort=port_number] username@server_ip[:file1 file2 。。。]
補充:Linux的sftp命令的參數說明
-o 用來向ssh傳遞參數,比如-oPort=222,會告訴ssh使用連接伺服器的222埠,而不是默認的22埠。這個在遇到伺服器端把ssh服務默認的22號埠改變的情況時會有用。
後面的file1、file2代表文件名,也可以是一個目錄。在沒有指定文件時會打開一個交互界面,在交互界面下可以通過命令來傳遞文檔。
如:
$ sftp -o port = 222 [email protected]
Linux的sftp命令的命令說明
在sftp命令的交互界面下,有很多命令可以用,比如:cd、ls、pwd、bye、chmod、chgrp、chown、df、get、help、mkdir等等。當然這些命令都是針對伺服器端的操作,其中一些命令在加l前綴的情況下可以實現在本地下的操作。比如,lpwd命令會列印本地當前工作目錄(即連接sftp前的當前工作目錄)。這些命令中有兩個是用來交換文檔的,它們是get和put命令,如下:
》 put local_path [remote_path]
》 get remote_path [lcoal_path]
put 命令會把本地文件或目錄“推”到伺服器端;get命令則把伺服器端文件或目錄“拉”下來。
上面就是Linux使用sftp命令傳輸文件相關介紹了,相較於ftp而已,sftp命令傳輸文件更加安全,推薦使用sftp命令傳文件。
② linux 遠程桌面命令
Linux的遠程桌面應該分兩個部分,首先是Linux客戶機連Linux伺服器,接著是windows客戶機連Linux伺服器,還有現在用平板電腦連遠程桌面。Linux客戶機連Windows伺服器其實沒啥可說的,rdesktop和termianl server比起windows自帶的「遠程桌面連接」。
命令:
nfs,telnet等均可登錄,即將遠程的那個配置成主機伺服器,這邊作為客戶機登錄.
比如:telnet
telnet 192.168.1.123
說明:192.168.1.123就是遠程的Ip地址
現在設想登錄到遠程主機rhostname上,運行gimp 程序,並把它的顯示輸出到本機的屏幕上,那麼需要依次執行以下操作:
1.啟動X 伺服器
# xhost +rhostname (允許遠程rhostname 機使用本機的X Server)
2.telnet (或ssh)登錄遠程主機
# telnet rhostname
3.設置DISPLAY 環境變數
指定了一個顯示設備,所有的圖形程序都將顯示到這個設備。
DISPLAY 的格式為:hostname:displaynumber.screennumber。
hostname是本機主機名,或者是它的I P 地址。一般d i s p l a y n u m b e r 、screennumber 都是0。
# echo $SHELL
如果返回的是 /bin/ksh,那麼可以用:# export DISPLAY= 本機的IP 地址:0.0
如果返回的是 /bin/csh,那麼可以用:# setenv DISPLAY 本機的IP地址:0.0
如果返回的是 /bin/bash,那麼可以用:# DISPLAY= 本機的IP 地址:0.0
# export DISPLAY
4.啟動gimp 程序
# gimp
③ linux中ssh如何遠程執行一條命令,而且不登錄遠程伺服器
ssh [email protected] 'command ...'
scp [email protected]:/remote/path /local/path
scp /local/path [email protected]:/remote/path
- X forward
ssh -X [email protected]
xcommand ...
- Tunnel / Portforward
ssh -L 1234:remote.machine:4321 [email protected]
ssh -R 1234:local.machine:4321 [email protected]
ssh -L 1234:other.machine:4321 [email protected]
# vi /etc/ssh/sshd_config
PermitRootLogin no
# vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
# service sshd restart
# su - user1
$ mkdir ~/.ssh 2>/dev/null
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 644 ~/.ssh/authorized_keys
登入端:
$ ssh-keygen -t rsa
(按三下 enter 完成﹔不需設密碼,除非您會用 ssh-agent 。)
$ scp ~/.ssh/id_rsa.pub [email protected]:id_rsa.pub
(若是 windows client, 可用 puttygen.exe 產生 public key,
然後復制到 server 端後修改之, 使其內容成為單一一行.)
回到 server 端:
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ rm ~/id_rsa.pub
$ exit
# vi /etc/pam.d/su
auth required /lib/security/$ISA/pam_wheel.so use_uid
# visudo
%wheel ALL=(ALL) ALL
# gpasswd -a user1 wheel
# vi /etc/pam.d/sshd
auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users ōnerr=fail
# echo user1 >> /etc/ssh_users
④ Linux系統遠程登錄 該怎麼用命令符操作
ssh遠程登錄命令簡單實例
ssh命令用於遠程登錄上Linux主機。
常用格式:ssh [-l login_name] [-p port] [user@]hostname
更詳細的可以用ssh -h查看。
舉例
不指定用戶:
ssh 192.168.0.11
指定用戶:
ssh -l root 192.168.0.11
ssh [email protected]
如果修改過ssh登錄埠的可以:
ssh -p 12333 192.168.0.11
ssh -l root -p 12333 216.230.230.114
ssh -p 12333 [email protected]
另外修改配置文件/etc/ssh/sshd_config,可以改ssh登錄埠和禁止root登錄。改埠可以防止被埠掃描。
編輯配置文件:
vim /etc/ssh/sshd_config
找到#Port 22,去掉注釋,修改成一個五位的埠:
Port 12333
找到#PermitRootLogin yes,去掉注釋,修改為:
PermitRootLogin no
重啟sshd服務:
service sshd restart
⑤ 本地shell腳本中ssh到遠程伺服器並執行命令
在實際運用中在當前伺服器執行命令後,需要在另一台伺服器繼續執行某些命令,分開去到另一台伺服器執行也是比較麻煩的,因此整理下集中執行的方式
1、首先配置ssh免密操作
Linux 下實現SSH互信: https://www.jianshu.com/p/2456d98aa607
2、簡單命令
ssh [email protected] "cd /var/lib; ls; cd "
2.1 使用時注意,雙引號必須有。若沒加雙引號,第二條及之後的命令會在本地執行
2.2 分號是將兩條語句間隔開
2.3 單雙引的區別:單引號不會解析值,是什麼就傳什麼;雙引號會解析值,將解析結果傳過去
3、多條命令
ssh [email protected]<< reallssh
cd /var/lib/test
tar -zxvf api.com.tar.gz
......
exit
reallssh
3.1 命令寫在 << reallssh(開始) 至 reallssh(結束) 之間
3.2 reallssh可自己定義為其他形式
3.3 在結束前加上exit退出遠程
4、可能遇到的問題
問題:遠程登錄主機時出現Pseudo-terminal will not be allocated because stdin is not a terminal. 錯誤
解決方案:字面意思是偽終端將無法分配,因為標准輸入不是終端。
所以需要增加-t -t參數來強制偽終端分配,即使標准輸入不是終端。
to force pseudo-tty allocation even if stdin isn』t a terminal.
參考樣例如下:
ssh -t -t [email protected] -p 22
--------------------------------------------------------------------------------
參考:https://blog.csdn.net/jinking01/article/details/84386769
⑥ linux怎麼遠程執行另一台linux機器上的shell文件
現在兩台及器間設這ssh的不用密碼的連接,設置共有和私有的密鑰
user1 (客戶端A) user2(服務端B)
產生密鑰
user1# ssh-keygen -t rsa
user1# ls .ss
is_rsa id_rsa.pub
私鑰 公鑰=============》導入
user1#ssh--id -i .ssh/id_rsa.pub user2@B的IP
user1#ssh user2@B的ip
在A機器上:
ssh B機器IP <<EOF
/opt/m.sh
exit
EOF
其實這也是在B上執行的,只是在內部執行的而已
⑦ Linux遠程執行Shell命令或腳本
1. 遠程執行Shell命令
2. 遠程執行Shell本地腳本
#
⑧ 遠程登錄Linux伺服器的命令是什麼
網路上搜一下應該有很多步驟教程的,但我一般都是直接通過軟體登陸的,簡單方便,下載雲幫手,其中有一個遠程連接的功能,根據想要登錄的伺服器填寫信息就可以了,Linux和windows系統都可以直接登,記得要選擇對應的協議哦。