SSH key简介下面这个解释可能更加通俗一些:SSH共有两种登录方式:1. 口令验证登录;2. 密钥验证登录。口令验证登录过程中,客户端生成口令(服务器密码),并用服务器发来的公钥加密,发送给服务器。服务器通过私钥解密,拿到口令(服务器密码),如果正确则认证成功。密钥验证登录过程中,客户端生成公钥和私钥,将公钥提前部署在服务器上。客户端发起连接请求,服务器随机生成一个字符串,用本地的公钥加密,发送给客户端。客户端通过私钥解密,将解密后的字符串发送给服务器。服务器验证本地字符串和客户端发来的字符串的一致性,如果通过,则认证成功。ssh生成的密钥类型:推荐使用ED25519密钥类型注意:密钥用于鉴权,请谨慎保管。公钥文件以 .pub 扩展名结尾,可以公开给其他人,而没有 .pub 扩展名的私钥文件不要泄露给任何人!配置ssh key登陆服务器的流程生成ssh key的文件,包括公钥和私钥警告:密钥用于鉴权,请谨慎保管。公钥文件以 .pub 扩展名结尾,可以公开给其他人,而没有 .pub 扩展名的私钥文件不要泄露给任何人!使用ssh-copy-id将公钥部署到服务器上ssh-copy-id -i .ssh/id_ed25519.pub 用户名@服务器地址 -p 端口号需要注意:ssh.com/academy/ssh/cop...ssh远程登陆服务器设置好密码以后,可以使用ssh命令登陆到服务器,进行远程操作。可以有两种方法:ssh连接服务器命令如果直接linux下或者git bash使用ssh命令连接服务器即可ssh 用户名@服务器地址ssh 用户名@服务器地址 -p 3333ssh -J 跳板机用户名@跳板机地址 用户名@服务器地址dev.to/claudiohigashi/s...ssh隧道(SSH tunneling)应用场景:当你想要在你的本地电脑上,打开来自服务器的jupyter notebook时,你需要用到ssh tunneling。命令如下:jupyter notebook --no-browser --port=8080ssh -L 8080:localhost:8080 服务器用户名@服务器地址ssh -g -N -L 8888:localhost:8888 root@172.20.148.199 ssh -NL 8888:localhost:8888 root@172.20.148.199 ssh -L 8888:localhost:8888 root@172.20.148.199解释一下上面的事情:这时转发数据流是:client上的应用客户端将数据发送到本地的8080端口上,client上的ssh客户端将本地8080端口收到的数据加密后发送到server端的ssh server上,ssh server会解密收到的数据并将之转发到监听的8080端口,最后再将从http server返回的数据原路返回以完成整个流程。也就是说:ref:medium.com/@apbetahouse...lixueduan.com/posts/lin...本地转发(-L)和远程转发(-R)我们上面说的,叫做本地转发,从命令也可以看出来,因为我们用了-L命令。那怎么区分本地转发和远程转发呢ssh除了支持本地端口转发,还支持远程端口转发。顾名思义,远程端口转发表示的是将远程端口的数据转发到本地。如果服务器可以连接到你的local电脑,而你的电脑无法连接到服务器的话,可以使用远程转发。远程转发需要在服务器上执行命令SSH隧道:端口转发功能详解 - DoubleLi - 博客园 (cnblogs.com)