SSH客户端工具——PuTTY(1)

2023-11-03

引言

本文介绍了SSH客户端工具PuTTY的下载和在Windows下的安装方法、怎么使用PuTTYgen生成SSH密钥对,以及如何通过PuTTY远程登录SSH服务器。

一、安装PuTTY

PuTTY是在Windows平台下常用的SSH客户端工具,主要由Simon Tatham开发和维护。

1、从PuTTY的下载页下载PuTTY的安装包,如:putty-64bit-0.78-installer.msi。

#PuTTY主页
https://www.chiark.greenend.org.uk/~sgtatham/putty/
#PuTTY下载页
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
#Simon Tatham的个人主页
https://www.chiark.greenend.org.uk/~sgtatham/

在这里插入图片描述

2、安装PuTTY。

在这里插入图片描述

在这里插入图片描述

3、安装完成后,可以看到,在PuTTY软件包里有很多工具,比如:PuTTY就是SSH客户端工具,用于通过SSH连接远程服务器;PuTTYgen用于生成SSH密钥对(SSH keys)。

在这里插入图片描述

二、用PuTTYgen生成SSH密钥

1、启动PuTTYgen

在这里插入图片描述

可以修改Parameters,包括密钥(Key)的类型和长度。不过在大多数情况下,保持如上图所示的默认值即可。

2、单击Generate按钮,然后按照提示随意移动鼠标以产生一些随机性(randomness),产生的随机性用于生成Keys。

在这里插入图片描述

3、SSH Keys生成完毕后,如下图所示:

在这里插入图片描述

(1)文本框中的内容就是生成的SSH客户端公钥,可以将其粘贴到OpenSSH的authorized_keys文件中(注:在远程SSH服务器上)。

(2)Key fingerprint:生成的SSH Keys的指纹。

(3)Key comment:注释,可改。

(4)可以选择添加一个密码对产生的Keys进行保护,也可以不用。

(5)单击Save private key按钮,可以将产生的私钥保存成一个后缀名为.ppk的文件。

(6)单击Save public key按钮,可以将产生的公钥保存成一个没有后缀名的文件。注意:这个文件的格式与SSH服务器中用于认证的authorized_keys文件的格式是不一样的。

(7)如果想查看公钥,单击Load按钮,加载后缀名为.ppk的私钥文件,相应的公钥就会以authorized_keys文件中的格式显示在上图第一个文本框中。

三、通过PuTTY登录SSH服务器

1、启动PuTTY,打开PuTTY Configuration窗口,如下图所示:

在这里插入图片描述

2、选择Session(会话),配置会话的基本选项:

(1)选择连接类型:SSH

(2)填写远程服务器的主机名或IP地址、端口号(默认:22)

3、可以给会话配置起个名字(如:ubuntu),然后单击Save按钮保存当前的会话配置;单击Load按钮可加载选中的会话配置;单击Delete按钮可删除选中的会话配置。

4、单击Open按钮,打开远程登录窗口。

如果是第一次登录远程服务器或者之前没有将远程服务器的公钥保存到PuTTY的cache中,将弹出下面这个窗口:

在这里插入图片描述

(1)在这个窗口中,展示了远程服务器公钥的fingerprint,你也可以单击More info ...按钮查看远程服务器公钥更详细的信息,通过这些信息来确认这个服务器是不是要连接的SSH服务器,也就是根据SSH服务器的公钥对SSH服务器进行认证。

(2)如果信任这个远程服务器,可以单击Accept按钮继续登录,同时将服务器的公钥保存到PuTTY的cache中,下次再登录的时候就不会再弹出这个窗口了。

(3)如果单击Connect Once按钮,可以继续登录,但不会将服务器的公钥保存到PuTTY的cache中,下次登录时还会弹出这个窗口。

(4)如果不信任这个服务器,单击Cancel按钮,取消登录。

5、在登录窗口中,按照提示依次输入远程服务器上的用户名和密码,即可成功登录到远程服务器。

在这里插入图片描述

在这一步中,SSH远程服务器对SSH客户端采用的是用户名-密码这种认证方式,客户端每次登录都要依次输入用户名和密码。

SSH客户端在登录SSH服务器时,服务器对客户端的认证除了采用用户名-密码这种认证方式之外,还可以采用用户名-公钥认证方式,方法如下:


6、如何用用户名-公钥认证方式登录远程服务器?

(1)用PuTTYgen生成本地客户端的SSH密钥对(公钥、私钥)(本文第二部分)。

(2)将客户端的公钥添加到服务器的文件~/.ssh/authorized_keys中。

(3)启动PuTTY,打开PuTTY Configuration窗口,选择Session,在完成会话的基本配置后,按照下图所示将之前用PuTTYgen生成的客户端的私钥文件添加到会话配置中,再回到Session选项,点击Save,保存一下配置。

在这里插入图片描述

(4)单击Open按钮,打开远程登录窗口,登录SSH服务器。

在登录窗口中输入远程服务器上的用户名,回车。如果之前用PuTTYgen生成私钥的时候对私钥采用了密码保护,还需要输入私钥的密码。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSH客户端工具——PuTTY(1) 的相关文章

  • 使用 ChannelExec 的命令未执行 - Jsch

    我正在使用 Jsch 在服务器中创建一个文件并执行一些命令 对于文件创建 它工作正常 但是对于命令执行 则不然 它保持状态 1 仍在处理它 并永远保持该状态 这种情况发生在 shell 执行或我尝试成为 root 时 请按照以下方法操作 p
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • Emacs + 流浪汉 + plink

    我正在尝试让 emacs trapmp 在 Windows XP 下运行 以便在 Amazon EC2 实例上通过 putty plink 工作 用于执行此操作的文档很少 我可以找到部分文档 但没有一个文档能够解决实现此功能所需的所有步骤
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git
  • 如何使用ssh直接连接远程docker容器

    我想直接使用 ssh 连接到远程运行的 Docker 容器 通常我可以 ssh i privateKey user host docker ps which will list all running containers docker e
  • Xcode - 使用 SSH 身份验证添加存储库时出现身份验证失败错误

    我正在尝试通过 Xcode gt 设置 gt 帐户添加存储库 但我被困在正确的地址上 我们的存储库地址非常简单 my domain com port project name 通过 SSH 密钥进行身份验证 有人可以帮助我了解这里发生了什么
  • 通过 ssh 运行 Bash 脚本

    我正在尝试编写一个 Bash 脚本 它将通过 SSH 连接到计算机并创建一个目录 长期目标有点复杂 但现在我从简单的开始 然而 虽然很简单 但我似乎不太明白 这是我的代码 bin bash ssh T email protected cdn
  • emacs 中用于 plink (putty) 的新 comint mod:符号的函数定义无效

    我想对 plink putty 使用新的 comint 模式 我将代码放在 init el 中 但是如果 M x run plink 我收到以下错误 let 符号的函数定义为 void comint check proc path defv
  • 使用 pscp 命令时出现“未找到命令”

    我正在使用 PuTTY pscp 将项目文件夹传输到 AWS 实例 我可以使用 ppk 公钥文件进行连接并且ssh命令成功打开并登录 这里我使用命令来传输文件夹 pscp r i C path to my keys converted pe
  • 使用 JSch 分别为各个提示提供输入

    问题是 SSH 连接需要在常规登录后提供另一个用户 ID 和密码信息 我正在使用 JSch 连接到远程服务器 它接受以下形式的输入InputStream 和这个InputStream只能通过一次 由于会话是交互式的 这会导致问题 我尝试将输
  • 通过 SSH 的 sbt (Scala) 结果找不到命令,但如果我自己这样做就可以工作

    所以我正在尝试做一些涉及跑步的事情sbt通过 SSH 命令 这就是我正在尝试的 ssh my username
  • 无法在 PHP 中使用 SFTP

    我正在用 PHP 编写一个简单的 SFTP 客户端 因为我们需要通过 n 个远程服务器以编程方式检索文件 我正在使用 PECL SSH2 扩展 不过 我遇到了障碍 php net 上的文档建议您可以这样做 stream fopen ssh2
  • VS 代码 ssh;服务器安装路径

    我正在尝试更改 VS Code 服务器文件夹安装位置 该功能最近已实现 我找到了以下参考资料 1 https github com microsoft vscode remote release issues 472 2 https sta
  • 无需代理转发的 SSH 跳转主机

    虽然是一个简单的问题 但我已经搜索了几天没有成功 M My machine J Jump Host S Server Jump Host has my public key on authorized keys Server has J s
  • SSH:连接被远程服务器关闭

    我正在尝试 ssh 登录我的远程服务器 但每当我尝试使用 ssh 命令通过终端登录时 ssh root ip address 我收到错误 Connection closed by ip address 我检查了主机拒绝和主机允许 文件中没有
  • 如何临时更改git ssh用户进行远程推送?

    是否可以临时更改 ssh 用户为 git Push Remote Master 而不会弄乱 git config 或 git Remote 或使用整个远程 URL root host gitrepo git push otheruser r
  • 在没有 paramiko 的情况下通过 python 运行 ssh 时,“伪终端不会被分配,因为 stdin 不是终端”

    我在 Python 中运行 ssh 而不使用像 Paramiko 这样的外部库 我这样做有我的理由 而不是通过外部库 基本上我正在做subprocess Popen ssh t bla command 执行此操作时我收到以下消息 Pseud
  • php run git 收到“ssh 权限被拒绝”

    我正在尝试从浏览器中运行 git pull php 脚本 但我得到了 sh 连接到主机 git assembla com 端口 22 权限被拒绝 我的 PHP 脚本
  • gitlab 上的权限被拒绝(公钥)

    我的问题是我无法从 GitLab 推送或获取 不过 我可以克隆 通过 HTTP 或通过 SSH 当我尝试推送时出现此错误 权限被拒绝 公钥 致命 无法从远程存储库读取 从我看过的所有线程中 这是我所做的 在我的计算机上设置 SSH 密钥并将
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa

随机推荐

  • 数值概率算法

    基本概念 计算定积分 rand和srand 在解决设计问题时 有时会用到概率算法 概率算法允许在执行过程中随机的选择下一步的计算步骤 又是可使算法大大降低复杂度 提高算法效率 但有时也可能得不到问题的全部答案 基本概念 概率算法大致分为4类
  • 【Python】list.append()字典在for循环中数据覆盖的分析与解决

    问题 预期打印出来的list为 num 0 num 1 num 2 结果为 num 2 num 2 num 2 list dictionary num for i in range 3 dictionary num i list appen
  • 安装bootstrap

    导入软件源的 GPG key 并且添加 Yarn APT 软件源到你的系统 curl sS https dl yarnpkg com debian pubkey gpg sudo apt key add echo deb https dl
  • USB

    usb有主从设备之分 主设备有 pc 现在市面上的那些插u disk即可播放mp3的 mp3 之类的 usb 信号是差分信号 信号线为D D 在usb host 端 D D 各接一个15kohm 的下拉电阻 而在usb device端 这时
  • ue打开服务器文件速度很慢,看完大牛这篇文章,再遇到服务器反映慢的情况就不怕了...

    最近服务器反映很慢 查看服务器上的应用程序经常出现超时等等 而且还有时候出现卡死的情况 经过发现服务器I O压力很大 压力来自硬盘的I O访问已经达到100 最后原因是线上业务代码同一时间写入导致服务器硬盘I O爆表了 我这里纪录一下为了方
  • Hadoop集群搭建记录

    本文目录 写在前面 step1 安装openssh server step2 ssh文件夹的创建及生成密钥文件 step3 传送该文件 step4 slave1 slave2节点操作 step5 所有节点最终配置 免密登录成功 写在前面 本
  • 原来早就有java代码规范

    happy 最近几天 研究代码规范 想给给公司制定一个代码规范 公司很小 目前还没有代码规范 这个东西很烦人 也很难产生作用 小公司一般不采用吧 但现在为了提高代码质量 也就需要考虑了 今天 发现早在1997年 SUN公司就制定了java代
  • logit回归模型_混合logit模型(随机参数模型)的STATA应用及结果解读

    选择实验获得的数据主要通过离散选择模型来完成 离散选择模型中 最主要的是logit模型 之前已经介绍了二项logit模型回归的STATA实现 有修改 多项logit模型详解 多项logit模型回归系数解读 多项logit模型回归的检验 继续
  • spring boot AOP练习 @Aspect

    spring boot AOP练习 Aspect 环境
  • 【测评】用这款神器2小时就撸完了1天工作量的代码!爽

    目 录 一 写在前面 二 测评信息 三 测评体验 3 1 安装方便 3 2 始于颜值 3 2 1 简约美观的主题 3 2 2 多变时尚的风格 3 3 忠于强大 3 3 1 快捷的搜索 3 3 2 丰富的功能 3 3 3 开发者神器 3 4
  • [LeetCode] 811. 子域名访问计数

    题目描述 一个网站域名 如 discuss leetcode com 包含了多个子域名 作为顶级域名 常用的有 com 下一级则有 leetcode com 最低的一级为 discuss leetcode com 当我们访问域名 discu
  • python android 录制屏幕

    def settingtime while True starttime time strftime H M S recordcmd adb shell screenrecord sdcard demo mp4 pullfile adb p
  • 开发者的时代红利在哪里?

    2021 年和 2022 年 也许给很多人上了一场关于 风险意识教育 的课程 无论你是 最难 毕业季中的应届毕业生 还是在职场中苦寻事业道路的各行从业者 这一课众生平等 在疫情影响之下 经济大环境动荡 要想在市场下行的背景下全身而退 就需要
  • c++拷贝构造函数(深拷贝,浅拷贝)详解

    一 什么是拷贝构造函数 首先对于普通类型的对象来说 它们之间的复制是很简单的 例如 int a 100 int b a 而类对象与普通对象不同 类对象内部结构一般较为复杂 存在各种成员变量 下面看一个类对象拷贝的简单例子 include
  • 引入wangeditor 报错 error in ./node_modules/@wangeditor/editor/dist/index.esm.js

    ERROR Failed to compile with 1 errors 17 53 12 error in node modules wangeditor editor dist index esm js Module parse fa
  • Mac升级之后已破解的intellij idea无法启动

    打开终端 进入 gt gt gt Users ethan Library Application Support JetBrains IntelliJIdea 对应版本 gt gt gt vim idea vmoptions 删除之前配置的
  • Struts2反序列化漏洞复现

    环境 vulhub 环境搭建 进入s2 048目录 切换root用户 启动漏洞环境 docker compose up d 漏洞复现 浏览器访问 showcase Gangster Name输入 233 233 其余随便填 将Gangste
  • Linux服务器遭受黑客攻击时的日志分析排除

    0x00 前言 Linux系统拥有非常灵活和强大的日志功能 可以保存几乎所有的操作记录 并可以从中检索出我们需要的信息 本文简介一下Linux系统日志及日志分析技巧 0x01 日志简介 日志默认存放位置 var log 查看日志配置情况 m
  • Postman 如何进行参数化

    前言 Postman作为一款接口测试工具 受到了非常多的开发工程师的拥护 那么做为测试 了解Postman这款工具就成了必要的了 这篇文章就是为了解决Postman怎么进行参数化的 全局变量 全局变量是将这个变量设置成整个程序的都可以用 不
  • SSH客户端工具——PuTTY(1)

    引言 本文介绍了SSH客户端工具PuTTY的下载和在Windows下的安装方法 怎么使用PuTTYgen生成SSH密钥对 以及如何通过PuTTY远程登录SSH服务器 一 安装PuTTY PuTTY是在Windows平台下常用的SSH客户端工