Marco Nie - 2023年6月 https://blog.niekun.net/2023/06/ you are the company you keep... bash 脚本中使用 ssh 登录并执行命令 https://blog.niekun.net/archives/2826.html 2023-06-08T13:16:00+08:00 通过 ssh 可以远程登录服务器并执行相关操作,常用指令如下:ssh user@address -p 22 执行命令后会提示输入用户密码才能最终进入。如果在脚本中我们需要通过 ssh 登录用户并执行相关命令的话就有些麻烦了。可以通过安装 sshpass 的方式在脚本中定义 ssh 密码,从而解决需求。安装 sshpass:apt install sshpass 使用:sshpass -p password ssh user@address -p 22 通过以上命令就可以直接在一行中定义 ssh 密码从而自动登录了。在脚本中如果需要执行相关命令可以将命令写在 '' 中:sshpass -p password ssh user@address 'cd /tmp; ls; touch test.txt' 如果要执行的命令较长可以分开写,用 EOF 追加输入,就不用写引号了:sshpass -p password ssh user@address << EOF cd /tmp ls touch test.txt EOF注意结尾也要换行写 EOF 作为追加结束的标识。 Linux 创建新用户并授予 root 权限 https://blog.niekun.net/archives/2822.html 2023-06-05T16:54:00+08:00 Linux 默认会有一个 root 用户,但日常直接使用 root 有一定安全隐患,所以通常情况下我们习惯于创建一个新用户来登录使用,下面介绍常规的建立流程。建立新用户 vpsadmin:adduser vpsadmin 输入以上命令后会提示输入用户密码,完成后用户 vpsadmin 就建立完成了。安装 sudo 功能(sudo 就是在关键时刻,让普通账户临时获得 root 的能力):apt update && apt install sudo 把 vpsadmin 用户加入 sudo 名单里:visudo 执行后会打开相关配置文件,在 # User privilege specification 栏后加入一行配置即可:# User privilege specification root ALL=(ALL:ALL) ALL vpsadmin ALL=(ALL) NOPASSWD: ALL最上面的 root 表示能使用 sudo 命令的用户:第一个ALL表示允许使用sudo的主机;第二个ALL及第三个ALL表示用户组及用户;第四个ALL表示sudo可执行的命令,即所有命令;在有的系统中也简写做:root ALL=(ALL) ALL最下面我们自己添加的 vpsadmin 是需要授权可以使用 root 权限的用户,配置中 NOPASSWD 的意思是在使用 root 权限的时候在命令前输入 sudo 即可,确认后无需输入 root 密码,这样在使用中可以不用频繁的输入密码。如果你想要遵循常规的使用 sudo 时都输入密码,将配置改为:vpsadmin ALL=(ALL:ALL) ALL 即可。重新登录用户即可完成配置查看效果。参考链接:安全防护篇