首页
关于
Search
1
分享一些收集的Sync Key
5,508 阅读
2
mysql错误ERROR 1130 (HY000): Host 'localhost' is not allowed to connect to this MySQL server
1,634 阅读
3
对比win10系统上的三种软件包管理器scoop、chocolatey、winget
1,626 阅读
4
Resilio Sync 许可证下载
1,594 阅读
5
阿里云盘资源分享
1,249 阅读
前端
CSS
NodeJS
Javascript
小程序
Webpack
Vue
Typescript
Linux
软件教程
云服务器
脚本编程
技术扩展
Scoop
SSR
Youtube-dl
You-Get
Typecho
Annie
奇技淫巧
资源分享
Sync Key
随笔
疑难杂症
mysql
Docker
Python
Serverless
登录
Search
标签搜索
docker
K3S
powershell
scoop
webstorm
jQuery
webpack
typecho
mysql
windows10
linux
typescript
ssh
windows11
vue
git
Sync
fastify
winget
github
偏向技术
累计撰写
99
篇文章
累计收到
2
条评论
首页
栏目
前端
CSS
NodeJS
Javascript
小程序
Webpack
Vue
Typescript
Linux
软件教程
云服务器
脚本编程
技术扩展
Scoop
SSR
Youtube-dl
You-Get
Typecho
Annie
奇技淫巧
资源分享
Sync Key
随笔
疑难杂症
mysql
Docker
Python
Serverless
页面
关于
搜索到
2
篇与
ssh
的结果
2022-07-28
理解 SSH 免密登录
ssh 登录如果经常需要输入密码非常麻烦,所以为了省事和安全,进行配置密钥登录,ssh 免密登录根据 Client 环境分为 Linux 和 Windows,Linux 下只需几步即可进行免密登录,Windows 下的步骤要稍微多一点(之前写的免密登录,自己都有点看不懂了,这里重新理解一下 ::(小乖) #密钥登录 Server 端(被连接的一端)存储公钥,Client 端(使用 ssh 命令的一端)存储私钥,Client 端通过私钥进行 ssh 登录,从这里可以知道,只要保证一对生成的密钥,公钥存在 Server 端,并且允许授权登录,私钥存在 Client 端,Client 端就可以进行登录,那么在 Server 端生成密钥还是在 Client 端生成密钥?这可以根据自身情况进行指定,下面是几个概念 #Server 端 和 Client 端 Server 端指的是 Linux 环境,需要被远程连接的一端 Client 端需要通过命令行进行连接的一端,可以是 Linux、Mac OS、Windows Server 端 和 Client 端这里是指它的作用,不特定某一台机器 #authorized_keys 和 known_hosts authorized_keys 是在 server 端的一个文件,这个文件保存了一组公钥列表,只有被保存在该文件里面的公钥,才能允许 Client 端通过相同公钥对应的私钥进行授权登录,需要注意的是,如果已经存在有 authorized_keys 文件,要确保当前其中的公钥列表没有被人使用,才能进行覆盖,否则请通过追加,添加在内容后面 known_hosts 是在 client 端的一个文件,当进行 ssh 连接时,会提示是否保存,输入yes之后,会在 known_hosts 中保存一份 IP 信任列表,当 Server 端重装系统或者其他操作时,Client 端出现连接不上的情况,需要手动删除 known_hosts 中保存的 Server 端 IP #/etc/ssh/sshd_config ssh 的配置文件,修改 Server 端的 /etc/ssh/sshd_config,查看下面几个参数 bash复制 cat /etc/ssh/sshd_config | grep -P "(AuthorizedKeysFile )|(PubkeyAuthentication )|(PasswordAuthentication )" # 输出如下 # #PubkeyAuthentication yes # AuthorizedKeysFile .ssh/authorized_keys # #PasswordAuthentication yes # PasswordAuthentication no 1234567 确保下面的配置正确,PasswordAuthentication 允许通过输入密码访问,重要的是设置PubkeyAuthentication,这是密钥访问的关键 bash复制 # /etc/ssh/sshd_config PubkeyAuthentication yes PasswordAuthentication yes 123 修改配置后,执行重启 sshd 服务 bash复制 $ systemctl restart sshd 1 #SSH 命令 #ssh-keygen ssh 生成一对公钥和私钥的命令 Linux (以腾讯云服务器为例)下默认 ssh 位置是/root/.ssh,命令默认生成的私钥文件是/root/.ssh/id_rsa,公钥文件是/root/.ssh/id_rsa.pub Windows 下默认 ssh 位置是$home\.ssh,命令默认生成的私钥文件是$home/.ssh/id_rsa,公钥文件是$home/.ssh/id_rsa.pub 这里需要注意的是,如果已经通过ssh-keygen生成了一对默认的密钥,那么再次生成将会覆盖同名的密钥 #ssh-copy-id ssh-copy-id -i /root/.ssh/id_rsa.pub root@x.x.x.x 将公钥(文件名称带.pub的)添加到 Server 端,如果 Client 端是 Linux 环境,这个就很方便 #Client Linux -> Server Linux Client Linux 环境通过 ssh 免密登录 Server Linux,修改 /etc/ssh/sshd_config 需要重启 sshd 服务才能生效systemctl restart sshd 所有操作都是以 root 用户为例 #Client Linux 环境生成密钥 Client 端生成密钥,将公钥保存到 Server 端,添加到 authorized_keys 文件,Server 端配置 PubkeyAuthentication 为 yes,Client 端通过私钥进行登录 bash复制 # Client Linux 环境 # 建议修改保存的名称,防止后续冲突,以 /root/.ssh/kkk 为例 $ ssh-keygen # 下面是命令行提示步骤 Generating public/private rsa key pair. # 下面位置填入 /root/.ssh/kkk Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/kkk Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/kkk. Your public key has been saved in /root/.ssh/kkk.pub. # Server 端要将 PasswordAuthentication 设置为 yes, 才能通过密码登录 $ ssh-copy-id -i /root/.ssh/kkk.pub root@<Server IP> root@<Server IP>'s password: # 这里是保存在 /etc/ssh/sshd_config 中的 AuthorizedKeysFile 位置 # 查看公钥列表 $ cat .ssh/authorized_keys # 退出 ssh $ exit # 无需密码,通过私钥进行登录 $ ssh -i /root/.ssh/kkk root@<Server IP> # 为了访问安全,设置仅通过密钥登录 # 将 PasswordAuthentication 设置为 no 或者将 PasswordAuthentication 注释 12345678910111213141516171819202122232425262728 #Server Linux 环境生成密钥 Server 端生成密钥,将公钥添加到 authorized_keys 文件,配置 PubkeyAuthentication 为 yes,将私钥保存到 Client 端,Client 端通过私钥进行登录 bash复制 # Server Linux 环境 # 建议修改保存的名称,防止后续冲突,以 /root/.ssh/kkk 为例 $ ssh-keygen # 下面是命令行提示步骤 Generating public/private rsa key pair. # 下面位置填入 /root/.ssh/kkk Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/kkk Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/kkk. Your public key has been saved in /root/.ssh/kkk.pub. # 将公钥追加到 authorized_keys 文件,切勿直接覆盖(习惯 $ cat /root/.ssh/kkk.pub >> .ssh/authorized_keys # 查看私钥 $ cat /root/.ssh/kkk # 将私钥添加到 Client Linux,有两种方式 # 1. 直接复制 # Client Linux 直接创建文件 /root/.ssh/kkk,将查看到的私钥复制进文件 # 2. scp 将私钥下载到 Client Linux 环境 # 确保 Client Linux /etc/ssh/sshd_config 文件中的 # PasswordAuthentication 设置为 yes, 才能通过密码登录 # 否则报 Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 错误 # 输入密码即可 $ scp /root/.ssh/kkk root@<Client IP>:/root/.ssh/kkk # 确认 Server Linux /etc/ssh/sshd_config 文件中 PubkeyAuthentication 设置为 yes # 注意前面不能有 # 号, # 号代表该行注释 $ cat /etc/ssh/sshd_config | grep -P "PubkeyAuthentication " # # 进入 Client Linux 环境 # 无需密码,通过私钥进行登录 $ ssh -i /root/.ssh/kkk root@<Server IP> # 为了访问安全,设置仅通过密钥登录 # 将 Client Linux PasswordAuthentication 设置为 no 或者将 PasswordAuthentication 注释 12345678910111213141516171819202122232425262728293031323334353637383940 #Client Windows -> Server Linux #Client Windows 环境生成密钥 使用 git bash 终端进行操作,和上面的 Client Linux 环境操作步骤类似 #Server Linux 环境生成密钥 和上面的 Server Linux 环境操作步骤类似,复制到 Client Windows 时无法通过 scp 命令,建议直接新建文件,如果提示有Load key "d:/xxx": invalid format错误,需要注意私钥文件的最后一行需保留一行空行 #最后 要实现免密登录的操作,有几个点需要注意,Server 端 /etc/ssh/sshd_config 文件中的 PubkeyAuthentication 设置为 yes,公钥保存在 Server 端并且添加到 Server 端的 authorized_keys 文件内,Client 端通过私钥进行登录,只要保证这几点,就可以实现免密登录 最后一个建议公有云服务器将 PasswordAuthentication 设置为no或者注释掉
2022年07月28日
61 阅读
0 评论
0 点赞
powershell使用ssh连接服务器免密登录
#服务器 powershell复制 # 生成密钥对,记住生成的目标位置 ssh-keygen # Generating public/private rsa key pair. # Enter file in which to save the key (/root/.ssh/id_rsa): # 查看配置,可先绕过这一步,如果一切顺利,就不需要这一步 # RSAAuthentication yes # PubkeyAuthentication yes # AuthorizedKeysFile /home/<username>/.ssh/authorized_keys sudo nano /etc/ssh/sshd_config # 更改公钥名称 进入第一步中的.ssh目录 mv id_rsa.pub authorized_keys # 查看私钥,复制到客户端保存 cat id_rsa 12345678910111213141516 #客户端 powershell复制 # 记录私钥保存的位置 ssh -i d:\id_rsa_ubuntu <username>@<hostname> # 注意:如果出现以下提示 # Load key "d:/id_rsa_ubuntu": invalid format # 请仔细检查id_rsa_ubuntu文件,最后一行需保留一行空行 123456
2021年01月10日
475 阅读
0 评论
0 点赞