SSH是linux中,远程登录会话的一种安全协议
linux服务器上,一般都已经集成了ssh的服务端软件,并自启;
如果需要在linux上用ssh客户端去登录别的linux服务器,则需要安装ssh的客户端,
我的linux安装了openssh-client,所以在这里就不安装了,如果你的系统没有安装的话
yum -y install openssh-clients.x86_64
(-y 自动选择y,全自动)
-
在linux中远程登录另一台linux
ssh centos2
没有指定登录者身份,默认用当前会话的身份
前提是已经在/etc/hosts文件下添加
否则使用ssh 192.168.137.11
ssh lee@centos2
指定以用户lee来登录远程的centos2 ( 前提lee用户在centos2存在) -
从一台linux上发送一个远程指令给另一台远程linux去执行
ssh cts02 "command"
例:ssh centos2 "mkdir /root/xyz"
java程序启动
java -cp x.jar:y.jar:z.jar (要执行的jar,:
分割) com.test.App (全包名的类)
发送远程指令执行java程序示范:
ssh centos2 "/root/install/jdk1.8.0_60/bin/java -cp /root/hello.jar HelloWorld > /root/hello.log"
或者ssh centos2 "source /etc/profile;java -cp /root/x.jar HelloWorld"
-
从一台linux远程拷贝文件到另一台linux
scp
远程拷贝(前提是两台linux上都必须有这个scp程序)
拷贝文件:
scp ./a.txt root@centos2:/root/
拷贝文件夹:
scp -r ./aaa/ cts02:/root/
-
SSH免密验证(密钥)配置
ssh会话一定会验证登陆者的身份!
验证的机制有两种:
a) 用户名+密码验证
b) 密钥验证
请求方需要事先创建一对密钥(公钥,私钥; 私钥自己持有,公钥交给目标机器)
实现步骤:
在A机器(centos)上生成密钥对:
ssh-keygen
将生成好的公钥注册给目标机器(centos2):
ssh-copy-id centos2
在centos2的/root下会生成一个.ssh的隐藏文件,公钥在里面
反过来centos2到centos要免密也要做同样的操作