なにこれ
最近、Python→Rubyに移行していこうと思っていて、その中で学んだ事です。
Rubyで指定した鍵(と鍵のパスワード)を使って、サーバーにSSH接続しコマンド実行、コマンド実行後にファイル転送をするという内容です。
インフラやってる人に特に役に立つかも。
準備
gem install net-ssh
gem install net-scp
想定環境
- 接続先: 172.17.0.2
- 鍵Path: /home/user/.ssh/this_is_private_key.key
- 鍵Password: tomori_nao
Code
opt = {
:keys => '/home/user/.ssh/this_is_private_key.key',
:passphrase => 'tomori_nao',
:port => 22
}
Net::SSH.start('172.17.0.2', '<USERNAME>', opt) do |ssh|
cmd1 = 'echo tomori > nao.txt'
ssh.exec!(cmd1)
# File Transfer over SSH
src_path = '/home/<USERNAME>/nao.txt'
dst_path = './nao.txt'
ssh.scp.download! src_path, dst_path
end
まとめ
はい、できました。めでたしめでたし♥