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,输入斜杠/,贴贴【时间/关键字/进程号】 ,键盘输入n往下查找,键盘输入Shit+n往上查找

2、查询服务接口请求耗时:cd/服务日志路径, 执行awk -F ',' '$10>3000000 ${print $0}'*.log

3、查询服务端全部错误码日志: 执行awk -F ',' '$9!=0 ${print $0}'server.log或client.log

       

原文地址:https://www.cnblogs.com/Shanghai-vame/p/10765770.html