PuTTY使用者手冊

小常說IT發表於2020-12-24
3.8 PuTTY命令列

PuTTY可以在不需要使用者干預的情況下透過提供命令列引數(例如,從命令提示視窗或Windows快捷方式)來完成各種任務。

3.8.1從命令列開始會話

這些選項允許您繞過配置視窗,直接啟動到會話中。

要啟動到稱為主機的伺服器的連線:

putty.exe [-ssh | -telnet | -rlogin | -raw] [user@]host

如果使用這種語法,則從預設設定中進行設定(參見4.1.2節);使用者如果提供設定將重寫這些設定。此外,您還可以指定一個協議,該協議將覆蓋預設協議(參見3.8.3.2節)。

對於telnet會話,支援以下替代語法(這使得PuTTY適合用作web瀏覽器中telnet URL的URL處理程式):

putty.exe telnet://host[:port]/

啟動到串列埠的連線,如COM1:

putty.exe -serial com1

為了啟動一個名為sessionname的已儲存會話,請使用-load選項(在3.8.3.1節中描述)。

putty.exe -load “session name”

3.8.2清理

如果使用-cleanup選項呼叫PuTTY,而不是正常執行,PuTTY將從本地機器中刪除其登錄檔項和隨機種子檔案(在與使用者確認之後)。
它還將試圖刪除最近在Windows 7及以上的“跳轉列表”中儲存的會話資訊。

注意,在多使用者系統上,-cleanup僅刪除與當前登入使用者關聯的登錄檔項和檔案。

3.8.3標準命令列選項

PuTTY及其相關工具支援一系列命令列選項,其中大多數選項在所有工具中都是一致的。
本節列出所有工具中的可用選項。
特定於特定工具的選項將在有關該工具的章節中介紹。

3.8.3.1 -load:載入已儲存的會話
load選項會導致PuTTY從儲存的會話中載入配置細節。如果這些細節包括主機名,那麼這個選項就是使PuTTY啟動會話所需的全部內容。

如果會話名稱包含空格,則需要在其周圍加上雙引號。

如果您想建立一個Windows快捷方式來啟動PuTTY儲存的會話,那麼您應該使用以下選項

d:\path\to\putty.exe -load “my session”

(請注意,PuTTY本身支援此選項的另一種形式,以便向後相容。如果您執行putty @sessionname,它將具有與putty -load "sessionname"相同的效果。對於@form,不需要雙引號,並且@符號必須是命令列上的第一個東西。不建議使用這種形式。)

3.8.3.2選擇協議:-ssh、-telnet、-rlogin、-raw -serial
要選擇要連線的協議,可以使用以下選項之一:

  • -ssh選擇SSH協議。
  • -telnet選擇Telnet協議。
  • -rlogin選擇Rlogin協議。
  • -raw選擇raw協議。
  • -serial選擇序列連線。

這些選項在檔案傳輸工具PSCP和PSFTP(它們只與SSH協議一起工作)中不可用。

這些選項相當於PuTTY配置框的會話皮膚中的協議選擇按鈕(參見4.1.1節)。

3.8.3.3 -v:增加贅述
透過提供-v選項,大多數PuTTy工具可以告訴您更多關於它們正在做什麼的資訊。
如果你在建立聯絡時遇到困難,或者你只是好奇,你可以開啟這個開關,希望瞭解更多關於正在發生的事情。

3.8.3.4 -l:指定登入名
可以使用-l選項在遠端伺服器上指定要登入的使用者名稱。
例如,plink   -l fred。

這些選項相當於PuTTY配置框的連線皮膚中的username選擇框(參見4.14.1節)。

3.8.3.5 -L、-R、-D:建立埠轉發
除了在PuTTY配置中設定埠轉發(參見4.26節),還可以在命令列上設定轉發。命令列選項的工作方式與Unix ssh程式中的選項類似。

要將本地埠(比如5110)轉發到遠端目的地(比如popserver.example.com埠110),可以編寫如下程式碼:

putty -L 5110:popserver.example.com:110 -load mysession
plink mysession - l5110:popserver.example.com:110

要將遠端埠轉發到本地目的地,只需使用-R選項而不是-L:

putty -R 5023:mytelnetserver.myhouse.org:23 -載入我的會話
plink mysession -R 5023:mytelnetserver.myhouse.org:23

若要為隧道的監聽端指定IP地址,請在引數前加上:

plink -L 127.0.0.5:23:localhost:23 myhost

要在本地埠上設定動態的SOCKS-based 轉發,請使用-D選項。對於這個,你只需要透過埠號:

putty -D 4096 -load mysession

有關埠轉發的一般資訊,請參見3.5節。

這些選項在檔案傳輸工具PSCP和PSFTP中不可用。

3.8.3.6 -m:從檔案中讀取遠端命令或指令碼
-m選項執行與PuTTY配置框SSH皮膚中的“Remote command”(遠端命令)框類似的功能(參見4.18.1節)。
但是,-m選項希望得到一個本地檔名,它將從該檔案中讀取命令。

對於某些伺服器(特別是Unix系統),您甚至可以在該檔案中放入多行程式碼,並按順序執行多個命令或整個shell指令碼;
但這可能是一種濫用,不能期望在所有伺服器上都能工作。
特別是,它不與某些“嵌入式”伺服器(如思科路由器)一起工作。

此選項在檔案傳輸工具PSCP和PSFTP中不可用。

3.8.3.7 -P:指定埠號
-P選項用於指定要連線的埠號。
如果您的Telnet伺服器執行在機器的埠9696而不是埠23上,例如:

putty -telnet -P 9696 
plink -telnet -P 9696 
(請注意,這個選項在Plink中比在PuTTY中更有用,因為在PuTTY中可以編寫PuTTY -telnet   9696。)

這個選項相當於PuTTY配置框的會話皮膚中的埠號控制元件(參見4.1.1節)。

3.8.3.8 -pw:指定密碼
自動化遠端登入的一個簡單方法是在命令列上提供密碼。出於安全考慮,不建議這樣做。如果可能,我們建議您設定公鑰身份驗證。詳情見第8章。

注意-pw選項只在使用SSH協議時有效。由於Telnet和Rlogin的基本限制,這些協議不支援自動密碼身份驗證。

3.8.3.9 -agent和-noagent:控制使用Pageant進行身份驗證
-agent選項使用Pageant開啟SSH身份驗證,而-noagent關閉驗證。只有在使用SSH時,這些選項才有意義。

有關Pageant的一般資訊,請參閱第9章。

這些選項相當於PuTTY配置框的Auth皮膚中的代理身份驗證核取方塊(參見4.22.3節)。

3.8.3.10 -A和-a:控制代理轉發
選項-A開啟SSH代理轉發,-a關閉它。只有在使用SSH時,這些選項才有意義。

關於Pageant的一般資訊見第9章,關於agent forwarding的資訊見第9.4節。請注意,啟用此選項涉及安全風險;有關詳細資訊,請參見9.5節。

這些選項相當於PuTTY配置框的Auth皮膚中的代理轉發核取方塊(參見4.22.6節)。

這些選項在檔案傳輸工具PSCP和PSFTP中不可用。

3.8.3.11 -X和-X:控制X11轉發
-X選項在SSH中開啟X11轉發,然後-x關閉它。這些選項只有在使用SSH時才有意義。

有關X11轉發的資訊,請參見第3.4節。

這些選項相當於PuTTY配置框的X11皮膚中的X11轉發核取方塊(參見4.25節)。

這些選項在檔案傳輸工具PSCP和PSFTP中不可用。

3.8.3.12 -t和-T:控制偽終端分配
-t選項確保PuTTY嘗試在伺服器上分配一個偽終端,-T阻止它分配一個偽終端。
只有在使用SSH時,這些選項才有意義。

這些選項相當於PuTTY配置框SSH皮膚中的“不要分配偽終端”核取方塊(參見4.24.1節)。

這些選項在檔案傳輸工具PSCP和PSFTP中不可用。

3.8.3.13 -N:禁止啟動shell或命令
-N選項防止PuTTY在遠端伺服器上啟動shell或命令。如果只使用SSH連線進行埠轉發,並且伺服器上的使用者帳戶不具備執行shell的能力,則可能會使用此選項。

此特性僅在SSH協議版本2中可用(因為版本1協議假設您總是希望執行shell)。

這個選項相當於PuTTY配置框的SSH皮膚中的“根本不啟動shell或命令”核取方塊(參見4.18.2節)。

此選項在檔案傳輸工具PSCP和PSFTP中不可用。

3.8.3.14 -nc:用遠端網路連線代替遠端shell或命令
nc選項防止Plink(或PuTTY)嘗試在遠端伺服器上啟動shell或命令。取而代之,它將指示遠端伺服器開啟到您指定的主機名和埠號的網路連線,並將該網路連線視為主會話。

指定主機和埠作為-nc選項的引數,用冒號分隔主機名和埠號,如下所示:

plink   -nc 
您可能想要使用此功能,如果你需要一個SSH連線到目標主機只能達到透過代理主機,而不是使用埠轉發你喜歡用當地的代理功能(參見4.15.1更多關於本地代理的細節)。
在這種情況下,您可以選擇“本地”代理型別,將本地代理命令設定為“plink %proxyhost -nc %host:%port”,在會話皮膚上輸入目標主機名,並在代理皮膚上輸入可直接訪問的代理主機名。

此特性僅在SSH協議版本2中可用(因為版本1協議假設您總是希望執行shell)。它在檔案傳輸工具PSCP和PSFTP中不可用。它可以在膩子本身,雖然它不太可能是非常有用的任何工具除了Plink。另外,-nc使用與埠轉發相同的伺服器功能,所以如果您的伺服器管理員禁用了埠轉發,它將無法工作。

(該選項以Unix程式nc的名稱-nc命名,是“netcat”的縮寫。“plink host1 -nc host2:port”命令在功能上與“plink host1 nc host2 port”非常相似,後者在伺服器上呼叫nc並告訴它連線到指定的目的地。但是,Plink內建的-nc選項並不依賴於正在伺服器上安裝的nc程式。)

3.8.3.15 -C:啟用壓縮
c選項允許壓縮透過網路傳送的資料。這個選項只有在使用SSH時才有意義。

這個選項相當於PuTTY配置框SSH皮膚中的“啟用壓縮”核取方塊(參見4.18.3節)。

3.8.3.16 -1和-2:指定SSH協議版本
-1和-2選項強制PuTTY使用版本1或版本2的SSH協議。只有在使用SSH時,這些選項才有意義。

這些選項相當於在PuTTY配置框的SSH皮膚中選擇SSH協議版本(參見4.18.4節)。

3.8.3.17 -4和-6:指定一個Internet協議版本
-4和-6選項強制PuTTY對大多數傳出連線使用舊的網際網路協議IPv4或新的IPv6。

這些選項相當於在PuTTY配置框的連線皮膚中選擇您喜歡的Internet協議版本為“IPv4”或“IPv6”(參見4.13.4節)。

3.8.3.18 -i:指定SSH私鑰
-i選項允許您在*中指定私鑰檔案的名稱。PuTTY將用於與伺服器進行身份驗證的PPK格式。這個選項只有在使用SSH時才有意義。

如果使用Pageant,還可以指定公鑰檔案(RFC 4716或OpenSSH格式)來標識要使用的特定金鑰檔案。(當然,如果你不執行Pageant,這是行不通的。)

有關公鑰身份驗證的一般資訊,請參見第8章。

此選項相當於PuTTY配置框的Auth皮膚中的“用於身份驗證的私鑰檔案”框(參見4.22.8節)。

3.8.3.19 -loghost:指定一個邏輯主機名
這個選項透過告訴PuTTY您希望連線到的主機的名稱(在與PuTTY認為它連線到的位置不同的情況下)來覆蓋PuTTY的普通SSH主機鍵快取策略。
它可以是普通的主機名,也可以是後跟冒號和埠號的主機名。
有關這方面的詳細資訊,請參見第4.13.5節。

3.8.3.20 -hostkey:手動指定一個期望的主機金鑰
這個選項透過準確地告訴PuTTY需要什麼主機鍵來覆蓋PuTTY的普通SSH主機鍵快取策略,如果登錄檔中的常規自動主機鍵儲存不可用,那麼這個選項非常有用。此選項的引數應該是主機金鑰指紋或SSH-2公鑰blob。有關更多資訊,請參見第4.20.2節。

如果要配置多個要接受的金鑰,可以多次指定此選項。

3.8.3.21 -pgpfp:顯示PGP金鑰指紋
這個選項會讓PuTTy工具不正常執行,而是顯示PuTTY PGP主鍵的指紋,以幫助驗證新版本。有關更多資訊,請參見附錄E。

3.8.3.22 -sercfg:指定串列埠配置
此選項指定串列埠的配置引數(波特率、停止位等)。它的引數被解釋為以逗號分隔的配置選項列表,可以如下所示:

  • 從5到9的任何一位都可以設定資料位的數目。
  • “1”、“1.5”或“2”設定停止位的數目。
  • 任何其他數字字串都被解釋為波特率。
  • 一個小寫字母指定奇偶性:“n”表示無,“o”表示奇數,“e”表示偶數,“m”表示標記,“s”表示空格。
  • 一個大寫字母指定了流控制:’ N ‘表示無,’ X '表示XON/XOFF, ’ R '表示RTS/CTS, ’ D '表示DSR/DTR。

例如,‘-sercfg 19200,8,n,1, n’表示波特率為19200,8個資料位,沒有奇偶校驗,1個停止位,沒有流控制。

3.8.3.23 -sessionlog, -sshlog, -sshrawlog:指定會話日誌
這些選項導致PuTTY網路工具寫出一個日誌檔案。它們都需要一個檔名作為引數,例如“-sshlog putty”。log ‘導致SSH包日誌寫入一個名為’ pat .log '的檔案。這三個不同的選項選擇了不同的日誌記錄模式,所有這些都可以從GUI中獲得:

  • sessionlog選擇“所有會話輸出”日誌記錄模式。
  • -sshlog選擇“SSH包”日誌模式。
  • -sshrawlog選擇“SSH資料包和原始資料”日誌模式。

有關日誌配置的更多資訊,請參見第4.2節。

3.8.3.24 -proxycmd:指定一個本地代理命令
這個選項允許PuTTY的模式在本地機器上執行命令,並將其用作網路連線的代理。它需要一個shell命令字串作為引數。

有關此設定和其他代理設定的更多資訊,請參見第4.15.1節。特別要注意的是,由於在引數字串中可以理解描述的特殊序列,因此必須將文字反斜槓加倍(如果您想在命令中使用\,必須將\放在命令列中)。

3.8.3.25 -restrict-acl:限制Windows程式ACL
此選項(僅在Windows上)會導致PuTTY(或其他PuTTY工具)試圖鎖定作業系統在其自身程式上的訪問控制。如果成功,它應該提供一個額外的防惡意軟體的、已經執行在相同的使用者id作為PuTTY的程式,阻止它使用相同的介面偵錯程式呼叫PuTTy和讀取敏感資訊的記憶體或劫持其網路會話。

預設情況下不啟用此選項,因為Windows程式之間的這種互動形式具有許多合法用途,包括螢幕閱讀器等可訪問性軟體。而且,它在任何情況下都不能提供針對此類攻擊的完全安全性,因為PuTTY只能在啟動後鎖定自己的ACL,如果惡意軟體在啟動和鎖定之間攻擊程式,它們仍然可能進入。
因此,它犧牲了顯而易見的便利,並提供了比您希望的更少的真正安全性。但是,如果您確實想要做出這種權衡,那麼這個選項是可用的。

-restrict-acl啟動的PuTTY程式將把它傳遞給使用重複會話、新會話等啟動的任何程式(但是,如果您顯式呼叫PuTTY工具,例如作為代理命令,您需要自己安排將-restrict-acl選項傳遞給它們)。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990902/viewspace-2744974/,如需轉載,請註明出處,否則將追究法律責任。

相關文章