欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PuTTY用户手册(三)

程序员文章站 2022-06-22 21:45:10
3.8 PuTTY命令行PuTTY可以在不需要用户干预的情况下通过提供命令行参数(例如,从命令提示窗口或Windows快捷方式)来完成各种任务。3.8.1从命令行开始会话这些选项允许您绕过配置窗口,直接启动到会话中。要启动到称为主机的服务器的连接:putty.exe [-ssh | -telnet | -rlogin | -raw] [user@]host如果使用这种语法,则从默认设置......
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】
未完待续

本文地址:https://blog.csdn.net/le_17_4_6/article/details/85914414

相关标签: 译文