ssh-keygen -t rsa
ssh-copy-id root@客服端ip
ssh-copy-id root@hnpp-2
解决SSH免密登录配置成功后不生效问题
同步的文件一定不能有执行权限全部改成chmod 644 ./*
不改免密会失效,失效之后删除 rm -rf /root/.ssh,重新验证
如果ssh加了白名单验证需要添加验证白名单
# ssh-cmd-gd
### 手动配置authorized_keys
```sh
mkdir -p ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
vi authorized_keys
```
### 手动配置AllowUsers
```sh
tee -a /etc/ssh/sshd_config <<EOF
AllowUsers root@10.0.103.211
AllowUsers root@10.0.103.212
AllowUsers root@10.36.14.174
AllowUsers root@10.36.21.224
EOF
tee -a /etc/ssh/sshd_config <<EOF
AllowUsers root@10.36.14.174
AllowUsers root@10.36.21.224
EOF
sshd -t
systemctl reload sshd
```
# over
centOS7使用SSH客户端中文乱码问题
永久生效:
修改/etc/locale.conf
LANG="zh_CN.GB2312"
最后执行
source /etc/locale.conf
即可永久生效,下次登录,中文就不会乱码了。
今天配置SSH免密登录时,使用 ssh-keygen
命令成功生成了公钥和私钥,并且也执行了 ssh-copy-id 机器地址
将公钥添加到了服务器的authorized_keys文件中。
cd ${WORKSPACE}/admin/target
scp admin-1.0.0-SNAPSHOT.jar 192.168.0.30:/data/web
ssh 192.168.0.30 "nohup bash /data/sh/admin.sh"
#!/bin/bash
# 脚本中只要出现执行不是true的语句,就退出不再往下执行
set -e
# 导入环境变量
export jar_PATH=/data/web
export APP_PATH=/home/admin
# 判断老的进程是否存在,若存在就杀掉
killjar()
{
pid=`ps -ef|grep admin |grep java |awk '{print $2}'`
echo "admin Id list :$pid"
if [ "$pid" = "" ]
then
echo "no admin pid alive"
else
kill -9 $pid
fi
}
# 调用函数
killjar
# 判断老的jar包是否存在,若存在就删除
[ -f $APP_PATH/admin-1.0.0-SNAPSHOT.jar ] && \
rm -rf $APP_PATH/admin-1.0.0-SNAPSHOT.jar
# 更新最新的jar包
if [ -f $jar_PATH/admin-1.0.0-SNAPSHOT.jar ]; then
mv $jar_PATH/admin-1.0.0-SNAPSHOT.jar $APP_PATH
fi
# 重新启动
nohup java -jar $APP_PATH/admin-1.0.0-SNAPSHOT.jar > \
/home/admin/admin.log &
# sleep 10秒, 等待java进程完成起来
sleep 5s
echo 'Start success!'
You have new mail in /var/spool/mail/root
结果用jenkins执行这段远程拷贝时候直接被断开连接,原因是脚本里面的home目录有文件权限过大,启动了保护机制
二、解决SSH Authentication Refused问题
从日志中我们已经分析出了错误的具体原因,提示我们 /home/logs
目录的属主和权限配置不当。然后上网查找资料得知:SSH不希望home目录和~/.ssh目录对组有写权限,于是执行以下命令进行更改:chmod g-w /home/logs
执行完成后,重启SSH服务再次执行ssh 登录时发现已经实现了免密登录,问题解决:
SSH进行认证的过程中除了对用户目录有权限要求外,对 .ssh 文件夹和 authorized_keys 文件同样也要限制,如果日志中提示这两个的问题,可以通过如下方式进行修改:
chmod 700 /home/skyler/.ssh
chmod 600 /home/skyler/.ssh/authorized_keys
SSH登录过程如果出现问题除了查看上述 /var/log/secure
文件外,还可以通过在 ssh 命令后添加调试参数 -vvv
来查看调试信息(eg: ssh -vvv localhost
便会以调试模式来执行本次ssh命令),以此来更好的定位问题。
Linux文件的基本权限有9个,分别是拥有者,所属组,其他人,三种身份各有“读、写、执行”三种权限。Linux使用了数字来代表各个权限:
r:4
w:2
x:1
其中每种身份的最终权限是需要累加的,比如当权限为“-rwxr-xr-x”表示成数字则是
owner: 4+2+1=7,
group: 4+1=5,
others: 4+1 =5
这表示该文件的权限数字为“755”,而修改权限的命令语法为:
chmod [-R] xyz dir/filename,其中xyz就是权限数字,dir/filename表示文件或者目录名。
2)符号类型修改法:
我们把上述的九个权限分别是 user,group,others三种身份,借由u、g、o来代表,采用a表示所有权限,其余的r、w、x分别代表读、写、执行权限。使用如下表的方法