PuTTY用户手册(七)
4.16 Telnet面板
Telnet面板允许您配置仅适用于Telnet会话的选项。
4.16.1"处理OLD_ENVIRON歧义"
用于传递环境变量的原始Telnet机制没有得到很好的指定。
在编写标准(RFC 1408)时,BSD telnet实现已经支持该特性,该标准的目的是描述BSD实现已经在使用的行为。
遗憾的是,标准发布时出现了一个输入错误,并且错误地指定了两个重要的功能代码。
BSD实现没有改变,标准也没有得到纠正。
因此,您可能会发现BSD或rfc兼容的实现。
这个开关允许您选择一个PuTTY主张的。
通过发布第二个标准解决了这个问题,该标准定义了一个新的Telnet机制new_environment,它的行为与原来的old_environment完全相同,但是不受现有实现的限制。
大多数Telnet服务器现在都支持这一点,这一点是明确的。
只有在您无法将环境变量传递给相当旧的服务器时,才应该需要此功能。
4.16.2被动和主动Telnet协商模式
在Telnet连接中,客户机和服务器之间传递的数据有两种类型:实际文本和关于使用哪个Telnet额外特性的协商。
PuTTY可以使用两种不同的谈判策略:
在活动模式下,一旦连接打开,PuTTY就开始发送协商。
在被动模式下,PuTTY将等待协商,直到看到来自服务器的协商。
被动模式的明显缺点是,如果服务器也在被动模式下运行,那么根本不会开始协商。
因此PuTTY默认为活动模式。
然而,有时为了成功地通过某些类型的防火墙和Telnet代理服务器,需要使用被动模式。
如果您对防火墙有困惑,您可以尝试启用被动模式,看看它是否有用。
4.16.3"键盘发送Telnet专用命令"
在Telnet连接中,客户机和服务器之间传递的数据有两种类型:实际文本和关于使用哪个Telnet额外特性的协商。
PuTTY可以使用两种不同的谈判策略:
- 在活动(active)模式下,一旦连接打开,PuTTY就开始发送协商。
- 在被动(passive)模式下,PuTTY将等待协商,直到看到来自服务器的协商。
被动模式的明显缺点是,如果服务器也在被动模式下运行,那么根本不会开始协商。
因此PuTTY默认为活动模式。
然而,有时为了成功地通过某些类型的防火墙和Telnet代理服务器,需要使用被动模式。
如果您对防火墙有困惑,您可以尝试启用被动模式,看看它是否有用。
4.16.4 回车键发送Telnet新行而不是^M
如果选中此框,几个键序列的正常操作将被修改:
- 键盘上的退格键将发送Telnet专用退格码;
- Control-C将发送Telnet专用中断处理代码;
- Control-Z将发送Telnet特殊的挂起进程代码。
除非您知道自己在做什么,否则可能不应该启用此功能。
4.17 Rlogin面板
Rlogin面板允许您配置仅适用于Rlogin会话的选项。
4.17.1"本地用户名"
Rlogin允许通过服务器上名为.rhosts的文件自动(无密码)登录。
在.rhosts文件中添加一行代码,比如[email protected],然后在进行Rlogin连接时,客户机传输运行Rlogin客户机的用户的用户名。
服务器根据.rhosts检查用户名和主机名,如果它们匹配,则不要求输入密码。
这只会起作用,因为Unix系统包含一个安全措施,可以阻止用户在Rlogin连接中冒充另一个用户。
Rlogin连接必须来自低于1024的端口号,Unix系统禁止将其用于非特权进程;
因此,当服务器看到来自低编号端口的连接时,它假设连接的客户端由一个特权(因此是受信任的)进程持有,因此它相信用户的声明。
Windows没有这个限制:任何用户都可以从一个低编号的端口发起一个传出连接。
因此,Rlogin .rhosts机制对于安全地区分Windows机器上的几个不同用户是完全无用的。
如果您有一个指向Windows PC的.rhosts条目,您应该假设使用该PC的任何人都可以在Rlogin连接中欺骗您的用户名并访问服务器上的帐户。
“local username”控件允许您指定PuTTY应该声明的用户名,以防它与您的Windows用户名不匹配(或者您没有费心设置Windows用户名)。
4.18 SSH面板
SSH面板允许您配置只适用于SSH会话的选项。
4.18.1在服务器上执行特定的命令
在SSH中,您不必在服务器上运行一般的shell会话。
相反,您可以选择运行单个特定的命令(例如邮件用户代理)。
如果您想这样做,请在“远程命令”框中输入命令。
请注意,大多数服务器在执行该命令后将关闭会话。
4.18.2"完全不启动shell或命令"
如果勾选此框,PuTTY在连接到远程服务器后将不会尝试运行shell或命令。
如果只使用SSH连接进行端口转发,并且服务器上的用户帐户不具备运行shell的能力,则可能希望使用此选项。
此特性仅在SSH协议版本2中可用(因为版本1协议假设您总是希望运行shell)。
还可以使用-N命令行选项启用该特性;
看到3.8.3.13节。
如果您在Plink中使用此功能,您将无法以任何优雅的方式终止Plink进程;
杀死它的唯一方法是按Control-C或从另一个程序发送一个杀死信号。
4.18.3启用压缩
这支持SSH连接中的数据压缩:服务器发送的数据在发送之前被压缩,并在客户端解压。
同样,PuTTY发送给服务器的数据首先被压缩,服务器在另一端解压。
这可以帮助最大限度地利用低带宽连接。
4.18.4"SSH协议版本"
这允许您选择是使用SSH协议版本2还是旧版本1。
您通常应该将其保留为默认值’ 2 '。
旧的SSH-1协议不仅功能较少,而且不再开发,有许多已知的加密弱点,通常不被认为是安全的。
PuTTY的协议1实现主要是为了兼容性而提供的,不再进行增强。
如果服务器同时提供这两个版本,请选择“2”。
如果您有一些只与SSH-1对话的服务器或设备,请在这里选择“1”,不要将生成的连接视为安全连接。
如果服务器不匹配您的选择,PuTTY不会自动退回到协议的其他版本;
相反,它将显示一条错误消息并中止连接。
这可以防止主动攻击者将一个预定的SSH-2连接降级到SSH-1。
4.18.5在PuTTY工具之间共享SSH连接
此框中的控件允许您配置PuTTY,以便在可能的情况下重用现有SSH连接。
SSH-2协议允许您在同一个SSH连接上运行多个数据通道,这样您只需登录一次(并且只进行一次昂贵的加密设置),然后打开多个终端窗口。
PuTTY的每个实例仍然可以运行一个终端会话,但在这个盒子使用控件,您可以配置腻子检查的另一个实例本身是否已经连接到目标主机,如果有的话,共享实例的SSH连接,而不是另一个新的开始。
要启用此功能,只需勾选“如果可能的话共享SSH连接”框即可。
然后,每当启动连接到特定主机的PuTTY会话时,如果现有SSH连接可用,它将尝试重用该连接。
例如,从系统菜单中选择“Duplicate Session”将在同一主机上启动另一个会话,如果启用了共享,那么它将重用现有的SSH连接。
在使用此模式时,连接到给定服务器的第一个PuTTY将成为“上游”,这意味着它将管理真正的SSH连接。
所有重用连接的后续PuTTYs都称为“下行”:它们根本不连接到真正的服务器,而是通过本地进程间通信方法连接到上游PuTTY。
要**该系统,PuTTY的上游和下游实例都必须启用共享选项。
因此,在所有下游关闭之前,上游油灰不能终止。
这类似于端口转发或X11转发,其中终端会话已经完成的PuTTY仍然保持打开状态,以便继续为转发的连接提供服务。
如果您需要更详细地配置这个系统,有两个额外的复选框允许您指定特定的PuTTY可以作为上游或下游或两者兼有。
(只有在主“如果可能的话共享SSH连接”框也被选中时,这些框才会生效。)
默认情况下,这两个框都是勾选的,因此从相同配置启动的多个PuTTYs将指定其中一个为上游,并共享单个连接;
但是如果因为某些原因你不需要一个特殊的PuTTY配置是一个上游(例如,因为你绝对需要及时关闭)还是下游(例如,因为它需要做自己的身份验证使用一个特殊的私钥)然后你可以取消勾选一个或另一个盒子。
在上面的讨论中,我一直提到“PuTTY”,但是所有其他创建SSH连接的PuTTY工具也可以使用这种机制。
例如,如果PSCP或PSFTP加载了启用共享的配置,那么它可以充当下游,并使用GUI PuTTY实例设置的现有SSH连接。
一个特殊的情况是,PSCP和PSFTP永远不会作为上行流。
可以使用Plink以编程方式测试会话上游是否存在。
见7.2.3.3。
4.19 Kex面板
Kex面板(“**交换”的缩写)允许您配置与SSH-2**交换相关的选项。
**交换发生在SSH连接的开始(之后偶尔会发生);
它建立了一个共享秘密,该秘密用作SSH所有安全特性的基础。
因此,**交换的安全性对于连接的安全性非常重要。
**交换是一个加密密集的过程;
如果客户机或服务器是一台相对较慢的机器,那么较慢的方法可能需要几十秒才能完成。
如果连接启动太慢,或者连接定期挂起,您可能需要尝试更改这些设置。
如果您不明白这其中的任何含义,那么就不要管这些设置。
整个面板只与SSH协议版本2相关;
这些设置都不影响sh -1。
4.19.1**交换算法选择
PuTTY支持多种SSH-2**交换方法,允许您选择您喜欢使用的**交换方法;
配置类似于密码选择(参见4.21节)。
PuTTY目前支持以下**交换方法:
- ’ ECDH ':椭圆曲线Diffie-Hellman**交换。
- “Group 14”:与著名的2048位组交换Diffie-Hellman**。
- “Group 1”:与著名的1024位组交换Diffie-Hellman**。
我们不再建议使用此方法,并且在新安装中默认不使用此方法;
然而,它可能是非常古老的服务器软件所支持的唯一方法。 - “Group exchange”:使用这种方法,PuTTY请求服务器建议使用一个组进行**交换,而不是使用固定的组;
服务器可以避免已知的弱组,并可能随着时间的推移创建新的组,而不需要对PuTTY的配置进行任何更改。
如果可能的话,我们建议使用这种方法,而不是使用知名的组。 - RSA key exchange:与Diffie-Hellman**交换相比,这在客户端需要更少的计算工作,在服务器端需要更少的计算工作。
如果PuTTY发现的第一个算法低于“warn below here”行,那么在连接时将看到一个警告框,类似于密码选择的警告框(参见4.21节)。
4.19.2重复**交换
如果在连接启动时协商的会话**使用得太多或时间太长,那么可以对SSH连接挂载攻击。
因此,SSH-2协议指定应该每隔一段时间进行一次新的**交换;
这可以由客户机或服务器发起。
当重新协商正在进行时,没有数据可以通过SSH连接,因此它可能看起来“freeze”。
(在事件日志中记录重复**交换的发生;见3.1.3.1)
通常使用与连接开始时相同的算法,但开销类似。
这些选项控制PuTTY发起重复**交换(“rekey”)的频率。
您还可以在任何时候从特殊命令菜单中强制**交换(参见3.1.3.2节)。
- “Max minutes before rekey”指定在启动rekey之前允许间隔的时间。
如果将其设置为0,那么PuTTY将不会因为经过的时间而重新键入键。
sh -2协议规范建议超时时间不超过60分钟。
您可能需要完全禁用基于时间的rekey,原因与keepalives并不总是有用的原因相同。
如果你预期遭受网络中断的几个小时的SSH连接,但实际上并不打算发送数据,连接在这些时间,然后企图再续键中间的中断可能会导致连接被抛弃,而如果再续键被禁用,那么连接应原则上生存(没有干扰的防火墙)。
关于这些问题的更多讨论见第4.13.1节;
出于这些目的,rekey具有与keepalives几乎相同的属性。
(除了rekeys本身具有加密值之外,所以在决定是否关闭它们时应该记住这一点)注意,SSH服务器仍然可以发起rekeys。
“rekey之前的最大数据”指定在rekey启动之前允许向任意方向流动的数据量(以字节为单位)。
如果将此设置为0,PuTTY将不会因为传输的数据而重键。
sh -2协议规范建议最大限制为1gb。
除了以字节为单位指定值外,还可以使用以下简写:
’ 1k '指定1 kb(1024字节)。
1M指定1兆字节(1024 kb)。
1G指定1G (1024 mb)。
完全禁用基于数据的重键不是一个好主意。
在较小程度上,SSH-2协议的完整性和机密性部分依赖于发生在32位数据包***包装之前的重**。
与基于时间的重键不同,基于数据的重键不会在SSH连接空闲时发生,因此它们不会导致相同的问题。
顺便说一句,SSH-1协议的完整性保护甚至比没有rekey的SSH-2更弱。
4.20主机按键面板
Host Keys面板允许您配置与SSH-2主机**管理相关的选项。
主机**用于证明服务器的身份,并确保服务器没有被欺骗(通过中间人攻击或在网络上完全替换它)。
有关主机键的基本介绍,请参见第2.2节。
整个面板只与SSH协议版本2相关;
这些设置都不影响sh -1。
4.20.1主机**类型选择
PuTTY支持各种SSH-2主机**类型,并允许您选择更喜欢使用哪一种类型来标识服务器。
配置类似于密码选择(参见4.21节)。
PuTTY目前支持以下主机**类型:
- “Ed25519”:Edwards-curve DSA使用扭曲爱德华兹曲线和模量2 ^ 255 - 19所示。
- “ECDSA”:使用nist标准椭圆曲线之一的椭圆曲线DSA。
- ’ DSA ':简单的DSA使用模幂运算。
- RSA:普通RSA算法。
如果PuTTY已经为服务器存储了一个或多个主机键,那么它将更喜欢使用其中一个,即使服务器的键类型在首选项顺序中更高。
您可以使用“特殊命令”菜单从现有会话中向PuTTY的缓存添加这样的键;
3.1.3.2看到部分。
否则,PuTTY将完全根据您在配置中指定的首选项顺序选择键类型。
如果PuTTY发现的第一个键类型在“warn below here”行下面,那么在连接时将看到一个警告框,类似于密码选择的警告框(参见4.21节)。
4.20.2手动配置主机**
在某些情况下,如果PuTTY的自动主机**管理不能满足您的需要,您可能需要手动配置PuTTY以接受特定的主机**,或特定的主机**集之一。
您可能希望这样做的一个原因是,所连接的主机名PuTTY使用循环DNS返回多个实际服务器中的一个,并且它们都有不同的主机**。
在这种情况下,您可能需要配置PuTTY来接受可能服务器的主机**列表中的任何一个,同时仍然拒绝该列表之外的任何**。
另一个原因是,如果PuTTY的自动主机**管理完全不可用,例如,因为PuTTY(或Plink或PSFTP等)在Windows环境中运行,而无法访问注册表。
在这种情况下,您可能希望使用-hostkey命令行选项来配置预期的主机**;
看到3.8.3.20节。
对于PuTTY的自动主机**管理只是选择了错误的主机名来存储**的情况,您可能需要考虑设置一个“逻辑主机名”;
4.13.5看到部分。
要通过GUI配置手动主机键,请在“手动配置此连接的主机键”容器的编辑框中输入一些描述主机键的文本,并按下“Add”按钮。
文本将出现在“主机**或指纹接受”列表框中。
你可以用“删除”按钮再次删除按键。
描述主机**的文本可以采用以下格式之一:
- PuTTY的事件日志和主机**对话框中显示的表单的基于md5的主机**指纹,即由冒号分隔的16个2位十六进制数字。
- 一个base64编码的blob,以OpenSSH的单行公钥格式描述SSH-2公钥。
如何以这种格式获取公钥取决于服务器;
在OpenSSH服务器上,它通常位于/etc/ssh/ssh_host_rsa_key.pub这样的位置。
如果这个箱子包含至少一个主机**或指纹当PuTTY SSH连接,然后腻子的自动主机**管理是完全绕过:当且仅当,将允许连接的主机**服务器的关键之一在这个盒子上市,和主机**存储在注册表中既不会读,也不会写,除非你明确地这样做。
如果盒子是空的(通常是空的),那么PuTTY的自动主机**管理将正常工作。
4.21密码面板
PuTTY支持各种不同的加密算法,允许您选择您喜欢使用的加密算法。
您可以通过在列表框中上下拖动算法(或使用上下按钮移动算法)来指定首选项顺序。
当您建立SSH连接时,PuTTY将从顶部向下搜索列表,直到找到服务器支持的算法,然后使用该算法。
PuTTY目前支持以下算法:
- ChaCha20-Poly1305,一个组合密码和MAC(仅适用于sh -2)
- AES (Rijndael) - 256、192或128位SDCTR或CBC(仅适用于SSH-2)
- arc4 (RC4) - 256或128位流密码(仅适用于SSH-2)
- Blowfish - 256位SDCTR(仅适用于SSH-2)或128位CBC
- Trip-DES - 168位SDCTR(仅适用于SSH-2)或CBC
- single-DES - 56位CBC (sh -2见下文)
如果PuTTY找到的算法低于“warn below here”行,连接时将看到一个警告框:
The first cipher supported by the server
is single-DES, which is below the configured
warning threshold.
Do you want to continue with this connection?
服务器支持的第一个密码
低于配置的 single-DES
警告阈值。
您想继续这个连接吗?
这将警告您,第一个可用的加密不是非常安全的加密。
通常,你会在你认为安全的加密和你认为不安全的加密之间加上“警告”。
默认情况下,PuTTY提供一个首选项订单,用于反映安全性和速度方面的合理首选项。
在SSH-2中,加密算法是针对连接的每个方向独立协商的,尽管PuTTY不支持首选项顺序的单独配置。
因此,您可能会得到两个类似于上面的警告,可能使用不同的加密。
在SSH-2协议标准中不建议使用单des,但是有一两个服务器实现支持它。
如果启用“在SSH-2中启用single-des的遗留使用”选项,PuTTY可以使用单des与这些服务器进行互操作;
默认情况下,这是禁用的,PuTTY将坚持建议的密码。
4.22认证面板
Auth面板允许您为SSH会话配置身份验证选项。
4.22.1"显示预认证横幅"
SSH-2服务器可以为客户端提供一条消息,以便在用户登录之前显示给潜在用户;
这有时被称为身份验证前的“横幅”。
通常,这用于提供关于服务器和法律通知的信息。
默认情况下,PuTTY在提示输入密码或类似凭据之前显示此消息(但不幸的是,由于协议设计的性质,在提示输入登录名之前不会显示此消息)。
取消勾选此选项,便可完全抑制旗帜的显示。
4.22.2"完全绕过认证"
在SSH-2中,原则上可以在不使用SSH的机制向服务器标识或证明您是谁的情况下建立连接。
例如,SSH服务器可能更喜欢在数据通道中处理身份验证,或者根本不需要任何用户身份验证。
默认情况下,PuTTY假设服务器需要身份验证(我们从未听说过不需要身份验证的服务器),因此必须以用户名启动此过程。
如果发现用户名提示无法回答,可以尝试启用此选项。
但是,大多数SSH服务器都会拒绝这一点。
这不是你想要的选项,如果你有一个用户名,只是想要PuTTY记住它;
见第4.14.1节。
如果您试图设置到主流SSH服务器的无密码登录,则可能不会出现这种情况;
根据服务器的不同,您可能需要公钥身份验证(第8章)或GSSAPI身份验证(第4.23节)。
(这些仍然是身份验证的形式,即使您不必与它们交互。)
此选项只影响SSH-2连接。
SSH-1连接总是需要一个身份验证步骤。
4.22.3"使用Pageant尝试身份验证"
如果启用此选项,那么PuTTY将查找Pageant (SSH私钥存储代理)并尝试使用当前持有的任何适当的公钥Pageant进行身份验证。
这种行为几乎总是可取的,因此默认情况下是启用的。
在极少数情况下,您可能需要关闭它,以便使用密码等非公钥方法强制身份验证。
这个选项也可以使用-noagent命令行选项进行控制。
看3.8.3.9节。
有关Pageant的更多信息,请参见第9章。
4.22.4"尝试TIS或加密卡认证"
TIS和加密卡身份验证(尽管它们的名称不同)是SSH协议版本1中简单的挑战/响应身份验证的通用形式。
例如,如果您使用的是S/Key一次性密码,或者您有一个物理安全令牌来生成对身份验证挑战的响应,那么您可能会使用它们。
它们甚至可以用来提示输入简单的密码。
启用此开关后,如果服务器愿意尝试这些形式的身份验证,PuTTY将尝试这些形式的身份验证。
您将看到一个质询字符串(每次都可能不同),必须提供正确的响应才能登录。
如果您的服务器支持这一点,您应该与系统管理员讨论这些挑战和响应的具体形式。
4.22.5"尝试键盘交互认证"
与TIS身份验证等效的SSH-2称为“键盘交互”。
它是一种灵活的身份验证方法,使用任意序列的请求和响应;
因此,它不仅对诸如S/Key这样的挑战/响应机制有用,而且还可以用于(例如)在旧密码过期时向用户请求新密码。
PuTTY默认启用此选项,但提供了一个开关,以便在遇到问题时关闭该选项。
4.22.6"允许代理转发"
这个选项允许SSH服务器打开转发到您的本地副本的Pageant的连接。
如果你不运行Pageant,这个选项什么也做不了。
关于Pageant的一般信息见第9章,关于agent forwarding的信息见第9.4节。
请注意,启用此选项涉及安全风险;
有关详细信息,请参见9.5节。
4.22.7"允许在SSH-2中尝试更改用户名"
在SSH-1协议中,身份验证失败后不可能更改用户名。
因此,如果您在PuTTY ’ login as: '提示符下输入错误的用户名,您将无法更改它,除非重新启动PuTTY。
原则上,SSH-2协议允许更改用户名,但不强制要求SSH-2服务器接受这些更改。
特别是,OpenSSH不接受用户名的更改;
一旦您发送了一个用户名,它将拒绝作为另一个用户进行身份验证的尝试。
(根据OpenSSH的版本,它可能会悄悄地返回所有登录尝试的失败,或者发送错误消息。)
由于这个原因,PuTTY在默认情况下不会多次提示输入用户名,以防服务器抱怨。
如果您知道您的服务器可以处理它,您可以启用“允许尝试更改用户名”选项来修改PuTTY的行为。
4.22.8"用于身份验证的私钥文件"
如果使用公钥身份验证,则在此框中输入私钥文件的名称。
有关SSH中的公钥身份验证的信息,请参见第8章。
此**必须是PuTTY的本机格式(*. ppk)。
如果您有另一种要与PuTTY一起使用的格式的私钥,请参见第8.2.12节。
您可以使用身份验证代理盛会,这样就不需要在这里显式地配置**;
见第9章。
如果这里在运行Pageant时指定了私钥文件,PuTTY将首先尝试要求Pageant使用该**进行身份验证,并忽略可能具有的任何其他**。
如果失败,PuTTY将像正常情况一样请求一个密码。
在这种情况下,您还可以指定一个公钥文件(RFC 4716或OpenSSH格式),因为这足以标识Pageant的**,但是当然,如果没有Pageant, PuTTY就不能使用这个文件本身。
4.23 GSSAPI面板
“认证”面板的“GSSAPI”子面板控制GSSAPI身份验证的使用。
这是一种将身份验证交换委托给客户机机器上其他地方的库的机制,原则上可以以许多不同的方式进行身份验证,但实际上通常与Kerberos单点登录协议一起使用,以实现无密码登录。
GSSAPI仅在SSH-2协议中可用。
GSSAPI子面板上最顶层的控件是标记为“尝试GSSAPI身份验证”的复选框。
如果禁用此功能,则根本不会尝试使用GSSAPI,并且该面板的其余部分未使用。
如果启用了GSSAPI身份验证,那么将尝试GSSAPI身份验证,并且(通常)如果您的客户机上装载了有效的Kerberos凭证,那么PuTTY应该能够自动对支持Kerberos登录的服务器进行身份验证。
4.23.1"允许GSSAPI证书授权"
GSSAPI凭据委托是一种将Kerberos(或其他)身份传递给SSH服务器上的会话的机制。
如果启用此选项,那么PuTTY不仅能够自动登录到接受Kerberos凭证的服务器,还能够从该服务器连接到其他支持Kerberos的服务,并像自动一样使用相同的凭证。
(此选项是SSH代理转发的Kerberos类似物;
有关这方面的信息,请参阅第9.4节。)
注意,与SSH代理转发一样,这个选项的使用也有安全隐患:您所连接的服务器的管理员,或者任何**了该服务器上的管理员帐户的人,在连接到支持kerberos的其他服务时,都可以伪造您的身份。
然而,Kerberos站点通常由一个中心中心运行,因此一台服务器的管理员可能已经能够访问其他服务;
因此,这通常比SSH代理转发的风险要小。
4.23.2 GSSAPI库的首选顺序
GSSAPI是一种机制,允许通过同一接口访问多个身份验证方法。
因此,您的系统上可能存在多个身份验证库,可以使用GSSAPI访问它们。
PuTTY包含对一些著名的此类库的本机支持,它将在您的系统上查找所有这些库,并使用它找到的任何库。
如果您的系统中存在多个,并且您需要使用一个特定的系统,那么您可以调整使用这个首选项列表控件进行搜索的顺序。
首选项列表中的一个选项是使用用户指定的GSSAPI库。
如果PuTTY的选项列表中没有按名称提及要使用的库,那么可以在“用户提供的GSSAPI库路径”字段中输入它的完整路径名,并在首选项列表中移动“用户提供的GSSAPI库”选项,以确保在选择其他选项之前先选择它。
在Windows上,此类库是扩展名为.dll的文件,必须以与正在运行的PuTTY可执行文件相同的方式构建;
如果你有一个32位DLL,你必须运行一个32位版本的PuTTY, 64位也是一样(见问题a .6.10)。
在Unix上,共享库通常有一个.so扩展名。
4.24 TTY面板
TTY面板允许您配置远程伪终端。
4.24.1"不要分配伪终端"
当连接到一个Unix系统,大多数交互式shell会话是运行在一个伪终端,它允许Unix系统假装跟一个真正的物理终端设备但允许SSH服务器捕捉所有的数据来自假设备并将其发送回客户端。
有时候,您可能会发现需要在非伪终端中运行会话。
在油灰中,这通常只对非常专业的用途有用;
虽然在Plink(参见第7章)中,这是通常的工作方式。
4.24.2发送终端模式
SSH协议允许客户机为远程伪终端发送“终端模式”。
这些通常控制服务器对本地终端行为的期望。
如果您的服务器对这些模式没有合理的默认设置,您可能会发现在这里更改它们会有所帮助,尽管服务器可以随意忽略您的更改。
如果您不理解这些设置,那么可以忽略这些设置。
(如果没有请求或分配伪终端,这些设置都不会有任何效果。)
您可以通过在列表中选择某个模式,选择其中一个选项并在必要时指定确切的值,然后单击“Set”来更改该模式。
这些方案的效果如下:
-
如果选择了“Auto”选项,PuTTY工具将决定是否向服务器指定该模式,如果指定,则发送一个合理的值。
PuTTY将发送它认为合适的模式(目前只发送退格键、擦除和字符集是否为UTF-8、IUTF8的代码)。
Unix上的Plink将从本地终端传播适当的模式(如果有的话)。 -
如果选择“Nothing”,则在任何情况下都不会向服务器指定模式的值。
-
如果指定了一个值,它将在任何情况下发送到服务器。
值框的精确语法取决于模式。
默认情况下,所有可用的模式都被列为“Auto”,这在大多数情况下都是正确的。
每个设置的精确效果(如果有的话)取决于服务器。
它们的名称来自POSIX和其他Unix系统,它们最有可能对这些系统产生有用的影响。
(一旦登录到这些服务器,通常可以使用stty命令更改这些设置。)
一些值得注意的模式如下所述;
有关更详细的解释,请参见服务器文档。
- 擦除是用户输入时删除左边一个空格的字符。
当设置为“Auto”(默认设置)时,将遵循PuTTY中本地退格键的设置(参见4.4.1节)。
这和其他特殊字符指定使用ctrl - C C ^符号,等等。
使用^ < 27 >或^ < 0 x1b >指定一个字符数值,和文字^ ^ ~。
其他非控制字符由它们自己表示。
将框完全留空表示不应该将任何字符分配给指定的函数,尽管并非所有服务器都支持这一点。
-
QUIT是一个特殊字符,通常强制结束服务器上的当前进程(SIGQUIT)。
在许多服务器默认设置是Ctrl-backslash(^ ),这很容易不小心在许多键盘调用。
如果这妨碍了你,你可能想把它改成另一个角色或者完全关闭它。
在PuTTY中,可以以多种方式指定ECHO和ICANON等布尔模式,如true/false、yes/no和0/1。
(显式地指定no值与完全不发送模式是不同的。) -
布尔模式IUTF8向服务器发送终端字符集是否为UTF-8的信号,用于基本的行编辑;
例如,如果设置不正确,backspace键可能会擦除错误数量的文本。
但是,简单地设置这个参数通常不足以让服务器使用UTF-8;
POSIX服务器通常还需要设置语言环境(通过一些与服务器相关的方法),尽管许多新的安装默认为UTF-8。
而且,由于此模式添加到SSH协议的时间比其他模式晚得多,因此许多服务器(特别是较老的服务器)不支持通过SSH发送此模式;
实际上,一些编写得很差的服务器反对它的存在,因此您可能会发现需要将其设置为根本不发送。
当设置为“Auto”时,它遵循本地配置的字符集(参见4.10.1节)。 -
终端速度配置在其他地方;
看4.14.4节。
4.25 X11面板
X11面板允许您在SSH连接上配置X11的转发。
如果您的服务器允许您运行X Window System图形应用程序,那么X11转发允许您安全地让这些应用程序访问您的PC上的本地X显示。
若要启用X11转发,请选中“启用X11转发”框。
如果你的X显示器不寻常,你需要在“X显示器位置”框中输入它的位置;
如果为空,PuTTY将尝试在环境中找到一个合理的默认值,如果失败,则使用主本地显示(:0)。
有关X11转发的更多信息,请参见第3.4节。
4.25.1远程X11身份验证
如果使用X11转发,在SSH服务器机器上创建的虚拟X服务器将受到授权数据的保护。
这些数据是由腻子发明和检验的。
通常的授权方法被称为MIT-MAGIC-COOKIE-1。
这是一个简单的密码风格的协议:X客户机向服务器发送一些cookie数据,服务器检查它是否与真实的cookie匹配。
cookie数据通过未加密的X11连接发送;
因此,如果允许第三台机器上的客户机访问虚拟X服务器,那么cookie将以明文发送。
PuTTY提供了替代协议XDM-AUTHORIZATION-1。
这是一种经过加密身份验证的协议:X客户机每次发送的数据都是不同的,它依赖于客户机连接端的IP地址和端口,并且还带有当前时间戳。
因此,捕获xdm授权-1字符串的窃听者不能立即将其用于自己的X连接。
PuTTY对XDM-AUTHORIZATION-1的支持是一个实验性的特性,可能会遇到以下几个问题:
- 一些X客户端可能甚至不支持XDM-AUTHORIZATION-1,所以他们不知道如何处理PuTTY提供的数据。
- 这种身份验证机制只适用于SSH-2。
在SSH-1中,SSH服务器不以机器可读的格式告诉客户机转发连接的源地址,因此无法验证xdm - authorizsed -1数据。 - 你会发现这个特性导致一些SSH服务器问题,不会清理XDM-AUTHORIZATION-1数据会话后,那么,如果你使用客户端连接到同一个服务器,只有MIT-MAGIC-COOKIE-1和分配相同的远程显示号码,你可能会发现,过时的身份验证数据仍然存在在你的服务器和你的X连接失败。
PuTTY的默认设置是mi - magic - cookie -1。
如果你改变了它,你应该确保你知道你在做什么。
4.25.2 X本地显示的权限文件
如果您正在使用X11转发,则转发连接最终指向的本地X服务器本身可能需要获得授权。
一些Windows X服务器不需要这样做:它们通过更简单的方式进行授权,比如接受来自本地机器的任何连接,但不接受来自其他任何地方的连接。
但是,如果您的X服务器确实需要授权,那么PuTTY需要知道需要什么授权。
提供此数据的一种方法是,X服务器将其存储在与Unix . xauthority文件格式相同的文件中。
如果这就是Windows X服务器的工作方式,那么可以通过配置这个选项告诉PuTTY在哪里找到这个文件。
默认情况下,PuTTY不会尝试为本地显示寻找任何授权。
【翻译不易,转载请注明出处 衡与墨https://blog.csdn.net/le_17_4_6】
未完待续
上一篇: 使用HTML5的本机拖放API
下一篇: markdown 简单操作 记录