50、网络服务相关操作的 Ruby 实现

网络服务相关操作的 Ruby 实现

1. 成为 SSH 客户端

在进行安全的数据或命令传输时,我们常常需要在本地计算机和拥有 shell 账户的远程计算机之间建立安全连接。为了实现这一需求,我们可以使用 Ruby 中的 Net::SSH 模块,它实现了 SSH2 协议。该模块位于 net-ssh 宝石包中,不过部分操作系统会自行打包该模块。

要启动一个 SSH 会话,我们可以向 Net::SSH::start 方法传入主机名、主机上的 shell 用户名和密码。如果已经在本地计算机和远程主机之间设置了 SSH 公钥/私钥对,那么可以省略用户名和密码:

require 'rubygems'
require 'net/ssh'

Net::SSH.start('example.com', :username=>'leonardr',
               :password=>'mypass') do |session|
  # 在这里操作 Net::SSH::Session 对象...
end

Net::SSH::start 方法会接收一个代码块,并向该代码块传入一个 Net::SSH::Session 对象。我们可以使用这个会话对象在两台机器之间发送加密数据,或者在远程机器上启动进程。当代码块执行结束时,SSH 会话会自动终止。

在过去,直到 20 世纪 90 年代末,人们经常使用像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值