SSH 服务详解 (三)-- 使用 SSH 代理
SSH 服务详解 (三)-- 使用 SSH 代理
SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动
SSH服务详解(二)–使用私钥登录 SSH 服务器(免密登录)
SSH 服务详解 (三)-- 使用 SSH 代理
SSH 服务详解 (四)-- 本地调用远程主机的命令
SSH 服务详解 (五)-- 远程文件拷贝
SSH 服务详解 (六)-- Windows SSH 主机
SSH 服务详解 (七)-- SSH 连接 Github
- SSH 服务器运行在 ubuntu 18.04.1
- SSH 客户端在 Windows10
上一小节中使用命令
ssh -i .\id_rsa tyustli@192.168.10.18
可以使用 SSH 远程连接到 SSH 服务器,但是每次都需要指定秘钥,本小节就梳理一下 SSH 代理相关的知识,有了 SSH 代理之后就不需要自己每次手动输入秘钥了
SSH 代理使用步骤
- 启动 SSH 代理程序
- 将对应私钥添加到 ssh 代理中,在添加私钥时,如果提示输入私钥的密码,正确的输入私钥密码即可将私钥添加到 ssh 代理中
- 连接到远程用户
- 私钥管理
SSH 代理介绍
ssh 代理是一个程序,它可以帮助我们管理私钥,ssh-agent 即为 ssh 代理程序
那么什么时候需要 ssh 代理帮助我们管理私钥呢?当遇到如下情况时,我们会需要 ssh 代理。
使用不同的密钥连接到不同的主机时,每次都需要手动指定对应的密钥,ssh 代理可以帮助我们选择对应的密钥进行认证,不用手动指定密钥即可进行连接
当私钥设置了密码,我们又需要频繁的使用私钥进行认证时,ssh 代理可以帮助我们免去重复的输入密码的操作
启动 SSH 代理
以管理员身份启动 powershell ,在 powershell 输入如下命令
ssh-agent
如果启动失败,会报错,例如错误
unable to start ssh-agent service, error :1058
设置 SSH 代理程序自动启动
Set-Service -Name ssh-agent -StartupType Automatic
StartupType 类型可以取如下参数
Automatic 2
指示服务将由(或已由)操作系统在系统启动时启动。 如果一个自动启动的服务依赖于手动启动的服务,则该手动启动的服务也会在系统启动时自动启动。Boot 0
指示该服务是由系统加载程序启动的设备驱动程序。 此值仅对设备驱动程序有效。Disabled 4
指示服务已禁用,因此无法由用户或应用程序启用。Manual 3
指示服务仅由用户(使用服务控制管理器)或应用程序以手动方式启动。System 1
指示该服务是由 IOInitSystem 函数启动的设备驱动程序。 此值仅对设备驱动程序有效。
上述命令设置 SSH 代理程序自动启动,再次在 powershell 命令行中输入 ssh-agent 命令即可启动 SSH 代理程序
启动之后查看 SSH 代理程序
ps
命令执行之后结果如下
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------...80 7 1388 5688 0.02 26776 0 ssh-agent609 32 31456 72296 6.03 6916 1 StartMenuExperienceHost..
如果想关闭 SSH 代理程序,使用命令
kill 26776 // kill pid
询问时候关闭 SSH 代理程序
确认
是否确实要针对以下项执行 Stop-Process 操作: ssh-agent(26776)?
[Y] 是 (Y) [A] 全是 (A) [N] 否 (N) [L] 全否 (L) [S] 暂停 (S) [?] 帮助 (默认值为 “Y”): Y
输入 Y 即可
添加 SSH 私钥
私钥添加,将私钥交给 SSH 代理程序管理
ssh-add .\id_rsa
添加过程中会报错
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '.\\id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
这里提示私钥文件文件添加失败,原因是太多用户可以访问这个私钥,该私钥被忽略。所以需要修改私钥文件的权限
在 Linux 中可以使用 chmod 命令,但是 Windows 并没有这个命令
在 windows 中对应的命令是 icacls
具体 icacls/cacls
的命令参数可以参看相关的帮助文档(powershell 直接输入命令即可查看命令帮助)
给系统用户读取权限
icacls .\id_rsa /c /t /grant system:R
禁用继承
icacls .\id_rsa /c /t /inheritance:r
给当前用户读取权限
icacls .\id_rsa /c /t /grant tyustli:R # tyustli 为当前用户名
上述命令均会有如下命令执行结果
已处理的文件: .\id_rsa
已成功处理 1 个文件; 处理 0 个文件时失败
还有一种错误是
invalid format
这是因为 Linux 和 windows 两种系统对换行的处理不一样,Liunx 中换行 \n
但是在 windows 中换行是 \r\n
文件权限修改完成之后再次输入
ssh-add .\id_rsa
提示 SSH 私钥添加成功
Identity added: .\id_rsa (.\id_rsa)
远程连接
私钥添加到 SSH 代理程序之后,直接连接即可
ssh tyustli@192.168.10.18
此时不需要指定私钥,也不需要输入登录密码即可直接连接(如果私钥有密码,需要输入私钥的密码)
退出连接
exit
私钥管理
查看私钥管理相关命令
ssh-add --help
-l List fingerprints of all identities.-E hash Specify hash algorithm used for fingerprints.-L List public key parameters of all identities.-k Load only keys and not certificates.-c Require confirmation to sign using identities-t life Set lifetime (in seconds) when adding identities.-d Delete identity.-D Delete all identities.-x Lock agent.-X Unlock agent.-s pkcs11 Add keys from PKCS#11 provider.-e pkcs11 Remove keys provided by PKCS#11 provider.-q Be quiet after a successful operation.
SSH 服务详解 (三)-- 使用 SSH 代理相关推荐
- SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动
SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动 SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动 SSH服务详解(二)–使用私钥登录 SSH 服务器(免密登录 ...
- SSH服务详解(七)– SSH 连接 Github
SSH 连接 Github SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动 SSH服务详解(二)–使用私钥登录 SSH 服务器(免密登录) SSH 服务详解 (三)-- 使用 S ...
- Dropbear 安装配置与启动ssh服务详解
Dropbear 安装配置与启动ssh服务详解 扎啤 关注 2017.09.12 22:57* 字数 441 阅读 4160评论 0喜欢 0 一.介绍 dropbear作为一款基于ssh协议的轻量级 ...
- 第1章 ssh命令和SSH服务详解
基础服务类系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种 ...
- Linux ssh命令详解,连ssh命令都不了解就别说自己会用Linux了
前言 ssh相当于windows上的远程桌面连接,但没有桌面,只有文字终端.ssh是许多Linux使用者入门时必学的一个命令.借助ssh,开发人员可以很方便地连接远程或是局域网的其他电脑,直接在上面进 ...
- 【Linux】循序渐进学运维-服务篇-ssh配置文件详解
大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第4篇文章 文章目录 前言 配置文件的路径 配置文件详解 1. 修改默认端口 2. ListenAddress 0.0.0.0 3. ...
- freebsd SSH配置详解
<script type="text/javascript"></script> <script type="text/javascript ...
- Linux -ssh登录 详解
一.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会 ...
- linux 进程间通信 dbus-glib【实例】详解三 数据类型和dteeth(类型签名type域)(层级结构:服务Service --> Node(对象、object) 等 )(附代码)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
最新文章
- CIO:辩证看待云计算 游戏规则已改变
- ecshop清除mysql缓存_禁用ecshop缓存,关闭ecshop缓存功能
- linq查询不包含某个值的记录_MySQL行(记录)的详细操作
- 计算机视觉目标检测算法总结4——其他SSD系列算法
- 学生考勤系统设计mysql_学生考勤系统的设计与实现(Eclipse,MySQL)
- h5php大转盘抽奖,html5转盘抽奖 完整代码下载(网页版)
- android 实现3d扫描,DIY:让Android手机轻松变3D扫描仪
- arduino步进电机程序库_Arduino入门教程15(步进电机驱动库的使用):Arduino Uno R3+ULN2003+步进电机 使用Stepper驱动库,控制步进电机转动角度...
- ubuntu上打开markdown文件
- H.264/AVC标准参考软件 JM
- android mp3 wav转换工具,音频提取转换工具app
- CocosCreator开发笔记(21)-cc.Sprite的动态加载和释放
- 2019年终职场盘点:如何用5级管理法,经营好自己最重要的资产?
- 最难php框架,PHP框架发展存四误区 死穴不除难成大器
- IE的F12开发人员工具不显示问题
- 2022亚马逊云科技re:Invent全球大会即将启幕
- 基于Node.js自我展示博客网站-计算机毕设 附源码231547
- 中考计算机专业如果忘了怎么办,中考信息不及格的后果,中考信息技术没通过...
- 德扑入门 进阶读物推荐 - 德州扑克小绿皮书
- 奇文共欣赏——《史记·陈冠希本纪》