(008)Linux ssh远程执行指令

文章目录

  • 安装 ssh
  • 终端登录服务器
  • 密码登录
  • 证书登录
  • 重启ssh
  • 附录

安装 ssh

sudo apt upgrade openssh-server

终端登录服务器

ssh [email protected] -p 2284

密码登录

#!/bin/bash -x

# 需要安装 GitBash 工具

DST_HOSTS="[email protected]"
DATA_ZIP="./publish.zip"
RUN_CMD="sudo unzip -o /root/publish.zip"
RUN_CMD="ls"
DST_KD_PATH="/root/"

echo "t9hhV5thWBumQd"

for DST in $DST_HOSTS
do
    if [ -f "$DATA_ZIP" ]; then
    	echo -e $DST
    	scp -P 2284 $DATA_ZIP $DST:$DST_KD_PATH
    	# -p 选项要在  DST 的后面 !!!
    	ssh $DST -p 2284 "cd $DST_KD_PATH;$RUN_CMD"
    	echo -e "complete!"
	fi
done

#sleep 3

# Wait for user input
read -p "Press Enter to continue..."

# Close the shell
exit

证书登录

  1. ssh配置
vim /etc/ssh/sshd_config                #编辑服务端主配置文件
PasswordAuthentication no 						#启用密码验证
PubkeyAuthentication yes 						  #启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys 		#指定公钥库文件
PermitEmptyPasswords yes
  1. 客户端生成证书对
ssh-keygen -t rsa -m pem -f my.pem -C "[email protected]"

(008)Linux ssh远程执行指令_第1张图片

  1. 记住证书密码,如果没有设置,就不需要!
  2. 不设置证书密码,并且 ssh的配置 PermitEmptyPasswords=yes ,就可以不用在上传时,输入证书密码了。
  1. 上传公钥到服务器
cat /root/id_rsa.pub >> /home/zhangsan/.ssh/authorized_keys
  1. 修改目录权限:
sudo chmod 700 ~/.ssh/ -R
  1. 客户端上传文件:

在这里插入图片描述> 注意这里的用户,是linux的登录用户。

重启ssh

systemctl start sshd

附录

[1] Linux——远程访问及控制(SSH远程管理与配置)

你可能感兴趣的:(linux)