Linux服务器在SSH客户端如何实现免密登录
一、SSH客户端Setting 配置 key , 创建生成公钥导出文件。
二、服务器 master 上生成密钥
通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥。
ssh-keygen -t rsa
执行上面的命令时,我们直接按三次回车,之后会在用户的根目录下生成一个 3个 的文件夹。 cd .ssh查看改目录。
authorized_keys
id_rsa
id_rsa.pub
known_hosts
cd .ssh
三、远程密钥登录
这里介绍最常用的三种方式,一是通过 ssh-copy-id 命令,二是通过 scp 命令,三是手工复制。
方式一,通过 ssh-copy-id 命令设置。最后一个参数是我们要免密钥登录的服务器 ip 地址。
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100
方式二,通过 scp 命令直接将该文件远程复制过去,使用这种方式需要注意,如果你之前已经配置了其它服务器上的密钥,这是使用这种方法,就会覆盖掉你原来的密钥,这时候是不建议使用这种方式的,如果你是先将该文件复制到服务器上的一个目录下,然后在使用追加的方式,将密钥追加到 authorized_keys 也是完全 OK 的。如果你只有两台服务器也是可以直接复制到文件。
scp -p ~/.ssh/id_rsa.pub root@<ip>:/root/.ssh/authorized_keys
方法三、把SSH生成的公钥上传至服务器/root/xx.pub
把这个pub文件拷贝到.ssh/
cp pub.pub .ssh/
cd .ssh
ssh-keygen -i -f pub.pub>>1.txt
cat 1,txt
拷贝改文件下的内容贴到 authorized_keys里
四、将SSH客户端生成的私钥,秘钥内容放至 /.ssh 目录下 authorized_keys
cd .ssh
vi authorized_keys
按Shit+G跳转至最后一行, ssh-dss + 复制密钥内容shit + insert
按Esa 退出编辑
:wq保存
五、SSH输入服务器地址,用户名root ,点击确认,自动实现免密登录。
六、实现原理
1、ssh 客户端向 ssh 服务器端发送连接请求
2、ssh 服务器端发送一个随机的信息
3、ssh 客户端使用本地的私钥对服务器端发送过来的信息进行加密
4、ssh 客户端向服务器端发送加密过后的信息
5、ssh 服务器端使用公钥对该信息进行解密
6、若解密之后的信息和之前发送的信息匹配,则信任客户端,否则不信任。
七、Linux常用指令
kill -9 xx 结束服务进程
mkdir xx 新建文件夹
rf -rn xx.log 删除文件
ll 查看目录
ps -ef | grep java 查看服务端口号
tail -f 1000 xx.log 动态查看日志文件
cat xx.log 查看日志
cat server.log | grep "xx" 关键字模糊查询日志
curl -v "http://www.baidu.com" 显示get请求全过程解析
wget "http://www.baidu.com" 发送get请求
cat -n '/2018-08-12 06:00:00/,/2018-08-12 09:00:59/p' server.log | grep 'rewardType:3' 查看某个时间段日志
grep 'xx' *.log
grep -E 'aa|bb' 多个条件关键字查询
awk -F ',' '{print $8}' server.log | sort | uniq -c | sort -k1nr 查询日志中,总接口总数和调用量
less xx.log
1、查询具体报错日志: cd/服务日志路径, 通过【时间/关键字/进程号】查询日志。
方法一: linux指令: cat *.log | grep '关键字' 、 grep -E 'aa|bb' 多个条件关键字查询
方法二: less XX.log, shift+G 刷到最后一行,
然后用输入斜杠/,贴贴【时间/关键字/进程号】 ,键盘输入n往下查找,键盘输入Shit+n往上查找
2、查询服务接口请求耗时:cd/服务日志路径, 执行awk -F ',' '$10>3000000 ${print $0}'*.log
3、查询服务端全部错误码日志: 执行awk -F ',' '$9!=0 ${print $0}'server.log或client.log