首页
关于
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
页面
关于
搜索到
5
篇与
Linux
的结果
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 点赞
2021-07-27
Linux下运行bash脚本显示/usr/bin/env: "bash\r": 没有那个文件或目录
之前在Windows下编辑Funfile和bootstrap文件,这两个文件将会用在Linux服务器上,当执行的时候提示/usr/bin/env: "bash\r",很明显是在这两个文件中出现了格式问题,导致程序无法执行 出现原因 这主要是因为bash后面多了\r这个字符的原因。在linux终端下,输出\r会什么都不显示,只是把光标移到行首。于是终端虽然输出了/usr/bin/env bash,但是碰到\r后,光标会被移到行首,接着输出了:No such file or directory把前面的覆盖掉了。于是出现了那个莫名其妙的出错信息了 解决方案 以bootstrap文件为例 Windows上解决 使用git bash打开目标脚本,执行vim bootstrap,Shift + : 呼出输入框 :set ff 然后回车,重新设置文件格式 :set ff=unix 设置文件格式为unix :wq! 保存退出 Linux上解决 用vim打开bootstrap脚本 :set ff 然后回车,重新设置文件格式 :set ff=unix 设置文件格式为unix :wq! 保存退出
2021年07月27日
211 阅读
0 评论
0 点赞
2021-07-26
tar批量压缩目录
将当前目录下所有的子目录,批量压缩成同名的.tar.gz压缩文件 shell复制 ls -F | grep '/$' | awk -F '/' '{print $1".tar.gz"}''{print $1"/"}' | xargs -n2 tar czvf 1 shell复制 ls -F | grep '/$' | sed -r -n 's/\///gp' | sed 's/.*/&.tar.gz &/' | xargs -n2 tar -cvf 1 shell复制 ls -F | grep '/$' | sed 's/\(.*\)\//\1.tar.gz \1/' | xargs -n2 tar -cvf 1
2021年07月26日
167 阅读
0 评论
0 点赞
常用Linux命令
一些Linux命令 shell复制 # 查看用户组 groups [组名] cat /etc/group cat /etc/passwd # 更新用户组 newgrp d[组名] # 修改配置 sudo nano /etc/samba/smb.conf # 重启服务 service smbd restart sudo /etc/init.d/samba-ad-dc restart sudo smbd restart # 设置用户,用户名必须已存在,否则会抛出Failed to add entry for user 用户名 sudo smbpasswd -a 用户名 # 启用用户 sudo smbpasswd -e 用户名 # 查看磁盘容量 sudo parted -s /dev/sda p # 格式化磁盘 sudo mkfs.ext4 /dev/sda2 # 添加权限 sudo chmod 777 /nasroot/media # 添加写权限 chmod u+w /etc/sudoers # 撤销写权限sssss chmod u-w /etc/sudoers # 挂载磁盘 mount /dev/sda2 /nasroot/document # 格式化磁盘 mkfs -t ext4 /dev/sda4 1234567891011121314151617181920212223242526272829303132333435363738394041424344
2020年12月27日
74 阅读
0 评论
0 点赞
2020-11-08
Linux安装docker
#安装Docker Compose https://docs.docker.com/compose/install/在新窗口打开 shell复制 # 等待时间较长 sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose 123
2020年11月08日
85 阅读
0 评论
1 点赞