(12) linux shell 命令 -- ssh

SSH 是 Secure Shell 的缩写,它使用加密通道来传输网络数据。

1. 使用 SSH 在远程主机上运行命令

1. 连接远程主机

ssh username@remote_host
  • username
    • 远程主机上的用户
  • remote_host
    • 远程主机上的域名或者是 ip 地址

ssh 采用交互方式询问用户密码,一旦认证成功,将会为用户返回一个 shell。

2. 连接运行在端口 422 上的 SSH 服务器

ssh username@remote_host -p 422

3. 在远程执行命令,在本地显示

ssh username@remote_host 'COMMANDS'
ssh username@remote_host 'command1; command2; command3'
COMMANDS="command1; command2; command3"
ssh username@remote_host "${COMMANDS}"

4. ssh 压缩传输

ssh -C username@remote_host COMMANDS

5. 本地数据重定向到远程 stdin

echo 'test' | ssh username@remote_host 'echo'
# 将文件中的数据重定向到远程 stdin
ssh username@remote_host 'echo' < file

6. 在远程主机中执行图形化命令

ssh username@remote_host "export DISPLAY=:0; command1; command2"
# 远程主机执行, 图形化输出显示在本地主机上
ssh -X username@remote_host "command1; command2"

2. ssh 实现无密码自动登录

ssh 包含了一个内建的特性,可以用 ssh 密钥实现自动登录

  • ssh 采用了非对称加密技术
  • 认证密钥包含 公钥密钥
  • 公钥放置在远程服务器中(~/.ssh/authorized_keys)
  • 密钥放置在客户机中(~/.ssh/)
  • ssh 相关的配置信息存放在 /etc/ssh/sshd_config 文件中

1. 创建 ssh 密钥

# 创建 ssh 密钥, 并指定加密算法为 RSA
ssh-keygen -t rsa 

你需要在这一步执行的过程中,输入一个口令来生成一对公钥和密钥。如果不输入的话,也可以生成密钥,但是不安全。

运行完上述指令后,会在本地客户机的 ~/.ssh/ 文件夹中生成 id_rsa.pub 和 id_rsa 两个文件。

id_rsa 是密钥

id_rsa.pub 是公钥。公钥必须添加到远程服务器的 ~/.ssh/authorized_keys 文件中。

2. 向远程服务器添加公钥

ssh username@remote_host "cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub

上述指令会需要提供密码

然后,自动登录配置完毕。以后运行 ssh 不会在提示输入密码。

ssh-copy-id 工具可以自动将私钥加入到远程服务器的 authorized_keys 文件中。

ssh-copy-id username@remote_host
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值