Linux备忘
Linux备忘,一些遇到的坑
Linux #
npm install -g nrm
nrm ls
nrm use taobao
MacBook 安装brew以及修改镜像
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrcsource ~/.zshrc
参考网址:https://www.cnblogs.com/feiquan/p/13267284.html
wsl2安装Ubuntu20.04 LTS版本 #
添加删除命令执行后要重启。 安装wsl_update_x64.msi 要重启。在微软商店安装最新版。 记住在ps中设置Ubuntu20.04默认用户的口令为: ubuntu2004 config –default-user root ubuntu2004 是win10系统中存在的命令。
SSH协议 #
openssh是一个可以用来产生rsa密钥对的命令行工具。需要更新到最新版,以前的安装的太老了。导致使用的时候有错误(chmod 600 命令于此有关)。
- 下载最新的openssh产生密钥对
ssh-keygen -t rsa
- 密钥对会在/home/Zigzag/.ssh/下,此时需要对id_rsa进行权限变更,可以使用cmder执行如下命令:
chmod 600 /home/Zigzag/.ssh/id_rsa
- 把id_rsa.pub字符串拷贝到centos服务器上,使用cmder命令:
scp id_rsa.pub root@123.45.67.8:~/.ssh
会提示输入密码,输入后即可,点击yes,会在本地填入known_hosts,是来与服务器的公钥。等待客户端加密使用。
- 登录CentOS服务器,将id_rsa.pub里的文件写入到~/.ssh/authorized_keys里。
cat ./id_rsa.pub >> authorized_keys
然后重启ssh服务
service sshd restart
在VS Code上创建一个config文件:
Host 123.56.82.241
HostName 123.56.82.241
User root
IdentityFile /home/Zigzag/.ssh/id_rsa
SSH是协议,OpenSSH是它的开源实现。linux系统自带,用于主机的服务端。 (1)远程主机收到用户的登录请求,把自己的公钥发给用户。 (2)用户使用这个公钥,将登录密码加密后,发送回来。 (3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。 中间人将伪造的公钥发给用户怎么办?客户端会提示用户主机发过来的公钥指纹,等待用户手动确认。该过程用户端什么都没有。
但是每次都输密码,也太麻烦了。新的办法:
- 用户将自己的公钥储存在远程主机上。
- 用户执行登录请求。
- 远程主机会向用户发送一段随机字符串。
- 用户用自己的私钥加密后,再发回来。
- 远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
思考:如果主机的登录口令变了,SSH public key的方式登录是否还凑效? 用户端怎么产生公钥和把公钥放到主机上?
- 用户使用ssh-keygen命令产生公私钥匙对,一般会在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa。前者是你的公钥,后者是你的私钥。
- 使用ssh-copy-id user@host将公钥传送到远程主机host上面。
- 检查远程主机的/etc/ssh/sshd_config这个文件:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
- 重启服务service ssh restart
思考:本地是否可以有多个公私钥对?主机端是如何管理多个公钥的? 远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。 https://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
密码管理问题 #
金属学会服务器提示强制密码修改,但是修改完总是自动断掉。后来让从阿里云后台修改了密码,一切稳定。 登录后,我修改了变更策略,不让它过期。
cat /etc/login.defs:
PASS_MAX_DAYS 90 #9999此处设置过期时间
PASS_MIN_LEN 12
PASS_MIN_DAYS 7
PASS_WARN_AGE 30
UMASK 077
2020.4.20再次出现该问题,原因:修改了 /etc/login.defs下参数时,会立即生效,但是它只对修改后创建的用户生效。 解决办法,使用指令:
chage -M 20000 root // 将root帐户的有效期设置为2000天后
chage -l root // 查看是否生效
https://www.cnblogs.com/kevingrace/p/9670160.html 但报错,无法写入:failure while writing changes to /etc/shadow 原因: 金属学会的安全防控软件保护了该文件,防止被写。
2020.4.25 jar后缀的文件无法上传。怀疑在阿里云后台修改密码后,以前设置安全过滤策略不再生效了。需要重新添加白名单。