PuTTY用户手册(三)

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 login.example.com -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 host.name
plink -telnet -P 9696 host.name
(请注意,这个选项在Plink中比在PuTTY中更有用,因为在PuTTY中可以编写PuTTY -telnet host.name 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 host1.example.com -nc host2.example.com:1234
您可能想要使用此功能,如果你需要一个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选项传递给它们)。
【翻译不易,转载请注明出处 衡与墨https://blog.csdn.net/le_17_4_6】
未完待续

猜你喜欢

转载自blog.csdn.net/le_17_4_6/article/details/85914414