Giter Club home page Giter Club logo

ssh-tutorial's People

Contributors

atomicvar avatar cncsl avatar mikusaa avatar pcdeng avatar pomodory avatar ruanyf avatar tomakesense avatar wangyihang avatar weizhixiaoyi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ssh-tutorial's Issues

远程转发示例

现有的这个示例场景比较特殊,是否可以补充一种比较常用的示例以便于理解,以下是大致描述

ssh -R 8080:localhost:80 -N my.public.server
在内网环境下的本机localhost:80开启一个web服务
通过远程转发将这个80端口映射到具有公网IP的my.public.server主机的8080端口上
使得任何人都可以通过my.public.server:8080这个地址访问到本机80端口的web服务

ssh -R [remote-address:]remote-port:target-address:target-port -N remotehost
把本地路由可达的目标端口映射到远程主机的特定端口上,使可通过远程主机的特定端口来访问目标端口
remote address和remote port指定远程的监听地址和端口
target address和target port指定实际被访问的地址和端口,这个地址可以是任何本地路由可达的地址

ref: https://www.ssh.com/academy/ssh/tunneling/example#remote-forwarding

文中关于 ssh 客户端配置文件的 Host * 设置的论述存在问题

文章的这个部分,具体如下图所示:

如上图所示,Host * 如果写在了 Host remoteserver 前面,就无法实现像文中所说的后续覆盖的效果了,因为:

官方文档指出:For each parameter, the first obtained value will be used.(对于每个参数,将使用第一个获得的值)

Host * 写在前面时,Port 2222 会被首先使用,下面在补充一个 ssh 连接的过程:

综上所述,要实现文章中所说的写法,应该这样写:

Host remoteserver
     HostName remote.example.com
     User neo
     Port 2112

Host *
     Port 2222

即:Host * 应该被放到配置文件的最末尾,进行补充设置。

ssh 没有 -h 或 -help 参数

试了 windows 上的 OpenSSH_for_Windows_7.7p1 和 Centos7 上的 OpenSSH_8.0p1, OpenSSL 1.0.2k-fips,都没有 -h-help 参数,请问 client.md 文中的叙述是否有误,什么版本的 OpenSSH 具有该命令?

ssh位置描述错误

OpenSSH 的客户端是二进制程序 ssh。它在 Linux/Unix 系统的位置是/usr/local/bin/ssh,Windows 系统的位置是\Program Files\OpenSSH\bin\ssh.exe。
在上述的描述中,例如windows10的系统位置在C:\Windows\System32\OpenSSH\ssh.exe,而不是\Program Files\OpenSSH\bin\ssh.exe

本地端口转发

本地端口转发 80端口返回403禁止访问 433端口一直处于pending状态 这是什么原因?

证书登录流程

能否详细写一下证书登录的验证过程
image
是怎么检查是否有效的

SSH 密钥登录(key.md)一处可能的 Typo

原文 6.1 节,第三步下的说明文字:“这时如果私钥设有密码,ssh 将不再询问密码,而是直接取出内容里面的私钥。”
结合上下文,“内容”似应为“内存”?

AES 128表述不准确

SSH 客户端一节中

TLS:协议
RSA:密钥交换算法
AES:加密算法
128:加密强度
CBC:加密模式
SHA:数字签名的 Hash 函数

128并不是简单地指加密强度 改成密钥长度会好一些
然后TLS的协议说清楚是什么协议((

typo,结果多了个\

5.4最后一行

echo "I say:"hello!""
结果应该是I say:"hello!"
文中笔误多了个\

细节问题

服务器一节,PrintMotd配置项的说明中多写了一个the

sshd

请教一下,ssh服务端为什么也需要私钥文件?哪种情况下会用到?

ssh服务器怎么确定用哪个公钥去解密客户端发来的加密签名?

密钥登录的过程

SSH 密钥登录分为以下的步骤。

预备步骤,客户端通过ssh-keygen生成自己的公钥和私钥。

第一步,手动将客户端的公钥放入远程服务器的指定位置。

第二步,客户端向服务器发起 SSH 登录的请求。

第三步,服务器收到用户 SSH 登录的请求,发送一些随机数据给用户,要求用户证明自己的身份。

第四步,客户端收到服务器发来的数据,使用私钥对数据进行签名,然后再发还给服务器。

第五步,服务器收到客户端发来的加密签名后,使用对应的公钥解密,然后跟原始数据比较。如果一致,就允许用户登录。

请问其中对应的公钥是怎么确定的?

端口转发两级跳板最终效果

阮老师,“最终效果就是,访问本机的2999端口,就会转发到target-host的2999端口"。这里的2个2999是不是应该是7999呢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.