配置无密码 SSH 访问

配置 Subversion 或配置 Dreamweaver 以使用 SVN+SSH 之前,请先创建 RSA 密钥对并在服务器上配置公钥。此公钥/私钥对用于通过服务器进行身份验证,而不是以纯文本格式存储和传递密码。(可以不使用密钥对来配置 SSH;但由于不安全,因此 Adobe 不建议这样做。)

要配置 RSA 密钥,请在客户端计算机上创建私钥/公钥 RSA 密钥对。将公钥放在服务器上,然后在服务器上对该密钥进行授权。Adobe 还建议之后测试 SSH 连接以验证是否已正确配置。

注意要完成这些步骤,需要访问客户端计算机(即从其连接的计算机)。这些步骤还需要访问服务器(例如直接或通过 SSH/FTP)。在 Windows 上,您需要访问 SSH 客户端(例如 TortoiseSVN)和 RSA 密钥生成器应用程序(例如 PuTTYgen)。Mac OS 附带 SSH 客户端和密钥生成器。

在 Mac OS 上创建 RSA 密钥

在客户端计算机上完成以下步骤:

  1. 打开一个终端窗口。
  2. 输入以下命令,然后按 Enter:

    ssh-keygen -t rsa

  3. 出现保存密钥的提示时,按 Enter 以选择默认位置。
  4. (可选)为密钥键入密码,然后按 Return/Enter。如果键入了密码,则再次键入以确认,然后按 Return/Enter。

    将显示确认消息,表明私钥和公钥已保存,包括存储位置和名称。

  5. 要将公钥复制到服务器,请输入如下命令并替换相应的 AccountNameServerName

    scp .ssh/id_rsa.pub AccountName@ServerName:~/temp_rsa.pub

  6. 通过 SSH 连接到服务器。输入如下命令,并替换相应的 AccountNameServerName

    ssh -l AccountName@ServerName

  7. 提示您登录时键入密码。

    注意如果未提示输入密码您即可登录,则您的计算机/登录名可能已在服务器上获得授权。跳过下一部分并直接执行下面的测试 SSH 连接

在 Windows 上创建 RSA 密钥

在客户端计算机上完成以下步骤:

  1. 打开 RSA 密钥生成器应用程序(例如 PuTTYgen)。
  2. 生成一个 RSA 密钥对。
  3. 保存私钥和公钥。剩余步骤假定您分别使用名称 private_key 和 public_key。
  4. 在服务器上(例如直接或通过 SSH/FTP)使用名称 temp_rsa.pub 将 public_key 放入 ~/ 中。
  5. 通过 SSH 连接到服务器。假定您使用 TortoiseSVN,请输入如下命令并替换相应的 AccountNameServerName

    tortoiseplink AccountName@ServerName

  6. 提示您登录时键入密码。

    注意如果未提示输入密码您即可登录,则您的计算机/登录名可能已在服务器上获得授权。跳过下一部分并直接执行下面的测试 SSH 连接

在服务器上配置密钥

在服务器上(例如直接或通过 SSH/FTP),完成以下步骤:

  1. 确认服务器上存在 .ssh 文件夹。输入以下命令,然后按 Enter:

    ls -al ~/.ssh

  2. 执行以下操作之一:

    • 如果 ls 命令的结果表明该文件夹不存在,则在服务器上创建该文件夹,然后对密钥进行授权。输入以下命令并在输入每条命令后按 Enter:

      mkdir ~/.ssh
       
      mv ~/temp_rsa.pub ~/.ssh/authorized_keys
       
    • 如果该文件夹存在,则将密钥添加到服务器的授权列表。输入以下命令并在输入每条命令后按 Enter:

      cat ~/.ssh/authorized_keys ~/temp_rsa.pub > temp_keys
       
      mv temp_keys ~/.ssh/authorized_keys

测试 SSH 连接

完成上述步骤后,执行测试以确保您可以通过 SSH 连接到服务器并且不提示输入密码。

如果可以连接,但仍提示输入密码,请再次执行上文中适用的服务器端步骤。考虑通过在客户端上创建密钥对并再次执行剩余步骤来重新开始。

注意生成密钥时,确保指定正确的服务器位数。2048 位比较常见。但是,如果您不能确定,请查看 Web 主机。

如果您仍无法连接并且不提示输入密码,请查看 OpenSSH 或 Web 主机以获得更多帮助。

将 Subversion 配置为使用 SSH

要将 Subversion 配置为使用 SSH,请将 SSH 客户端的路径和您的登录信息添加到 Subversion 配置文件。

注意这些信息假定 Windows 用户使用 TortoiseSVN,Mac 用户使用 Mac OS SSH 客户端。

Subversion 配置文件的位置

要完成这些步骤,请首先打开要编辑的 Subversion 配置文件。配置文件位于以下文件夹之一中:

  • Windows 7 和 Vista

    C:\Users\您的用户名\AppData\Roaming\Subversion\config
  • Windows XP

    C:\Documents and Settings\您的用户名\Application Data\Subversion\config
  • Mac OS X

    /Users/您的用户名/.subversion/config

为 Mac OS 配置 Subversion

  1. 通过终端,在您的用户文件夹中查找上文中提到的 .subversion 文件夹。(在 Finder 中选择“前往”>“前往文件夹”或在终端中使用诸如 ls -al ~/.subversion 之类的命令。)
  2. SSH 的路径通常为“/usr/bin/ssh”。如果您不确定,请在终端中输入 which ssh
  3. 使用文本编辑器(例如 nano、pico 等)打开 Subversion 配置文件进行编辑。

    例如,在终端中输入 nano ~/.subversion/config
  4. 在隧道部分中([tunnels] 下方)输入以下内容:

    ssh = $SVN_SSH /usr/bin/ssh

    注意要使用基于密钥的身份验证,请添加 -i PathToKey。例如,ssh = $SVN_SSH /usr/bin/ssh -i PathToKey

    或者,您可以通过添加 -l UserName -pw Password 在此路径中输入用户名和密码。此方法不安全,因此 Adobe 不建议使用此方法。


  5. 保存并关闭配置文件。

为 Windows 配置 Subversion

  1. 通过 Windows 资源管理器,在您的用户文件夹中查找上文中提到的 Subversion 文件夹。
  2. 在纯文本编辑器(如记事本)中打开文件。
  3. 在 [tunnels] 部分中,指定 ssh 客户端所在的位置。此位置取决于它的安装位置。

    打开文件并在隧道部分中([tunnels] 下方)输入以下内容:

    ssh = $SVN_SSH C:/PathToSSHClient/tortoiseplink.exe

    注意要使用基于密钥的身份验证,请添加 -i PathToKey。例如,ssh = $SVN_SSH C:/PathToSSHClient/tortoiseplink.exe -i
    PathToKey


    或者您可以通过添加 -l UserName -pw Password 在此路径中输入用户名和密码。此方法不安全,因此 Adobe 不建议使用此方法。

  4. 保存并关闭配置文件。

将您的站点设置为结合使用 Subversion 与 SSH

  1. 打开 Dreamweaver 站点定义,然后从类别列表中选择“版本控制”。
  2. 从“访问”菜单中,选择“Subversion”。
  3. 为“协议”选择 SVN+SSH。
  4. 在“服务器地址”字段中输入服务器地址。
  5. 在“存储库路径”字段中输入存储库路径(除非已包含在服务器地址中)。
  6. 仅适用于 Dreamweaver CS4:
    1. 如果您的服务器不使用默认 SSH 服务器端口 (22),则选择“非默认值”,然后输入服务器端口。
    2. 输入用户名和密码。对于匿名登录,将这些字段保留为空。

      注意:用户名和密码不从 Dreamweaver 获取。发送用户的唯一方式是在服务器名称字段中输入 AccountName@ServerName
  7. 单击“测试”按钮以测试连接。

  8. 关闭“站点定义”对话框。
  9. 在“文件”面板中,选择本地视图或存储库视图。
  10. 在根文件夹上右键单击 (Windows) 或按住 Ctrl 并单击 (Mac OS) 以显示菜单。

  11. 选择“版本控制”>“获取最新版本”以更新文件列表。

本产品经 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 许可  Twitter™ 与 Facebook 中的内容不在 Creative Commons 的条款约束之下。

法律声明   |   在线隐私策略