Linux 下实现SSH互信

Linux 下实现SSH互信,第1张

一、准备两台服务器:

A机:192.168.1.1

B机:192.168.1.2

二、双机建立信任

1、在A机生成秘钥证书

在root下执行ssh-keygen命令,一路回车,生成秘钥证书

# ssh-keygen  -t  rsa  

2、查看生成秘钥文件

# cd ~/.ssh  

# ll

文件:私钥证书id_rsa、公钥证书id_rsa.pub

3、A对B建立信任关系

3.1 将公钥证书id_rsa.pub复制到机器B的root家目录的.ssh子目录中,同时将文件名更换为authorized_keys

# scp -r id_rsa.pub root@192.168.1.2:/root/.ssh/authorized_keys

3.2 若3.1报错:No such file or directory

使用:# ssh-copy-id -i id_rsa.pub root@192.168.1.2

ssh-copy-id命令会自动将id_rsa.pub文件的内容追加到远程主机root用户下.ssh/authorized_keys文件中

3.3 查看B机器是否接收

# ssh 192.168.1.2  

# cd .ssh/   

# ls   

# cat authorized_keys

# exit

3.4 B对A建立信任,同上3的 *** 作步骤

kill函数用来发送信号给指定的进程,在Shell下输入man 2 kill可获取其函数原型如下:#include <sys/types.h>#include <signal.h>int kill(pid_t pid,int sig)该函数的行为与第一个参数pid的取值有关,第二个参数sig表示信号编号。如果pid是正数,则发送信号sig给进程号为pid的进程;如果pid为0,则发送信号sig给当前进程所属进程组里的所有进程;如果pid为-1,则把信号sig广播至系统内除1号进程(init进程)和自身以外的所有进程;如果pid是-1还小的负数,则发送信号sig给属于进程组-pid的所有进程。如果参数sig是0,则kill()仍执行正常的错误检查,但不发送信号。可以利用这一点来确定某进程是否有权向另外一个进程发送信号。如果向一个并不存在的进程发送空信号,则kill()返回-1,errno则被设置为ESRCH。函数执行成功返回0,当有错误发生时则返回-1,错误代码存入errno中,详细的错误代码说明请参考man手册。注意:只有具有root权限的进程才能向其他任一进程发送信号,非root权限的进程只能向属于同一个组或同一个用户的进程发送信号。更简单的方法是通过进程名给进程发信号。比如你的进程名是 aproc,你自己定义一个信号量18,那么:#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>char cmd[256]=""int sig = 18char procname[]="aproc"sprintf(cmd, "killall -%d %s\n", sig, procname)system(cmd)就能给特定进程发信号了充分利用system函数,可以简化很多编程工作量,比如查IP地址、查硬盘目录、查磁盘空间等等,编程很麻烦的事都能用system处理,相当于在程序里调用SHELL

不需要samba吧!我只是想写一个SH在AIX上执行,实现2,向3,或,3,向2上传下载文件.

答题不易,互相帮助,手机提问的朋友在客户端右上角评价点满意即可.

如认可我的回答,请点击采纳为满意回答按钮.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7383561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存