まず、Rubyをインストールする
端末を開き、コマンドを実行する
sudo apt-get install software-properties-common sudo apt-add-repository ppa:brightbox/ruby-ng sudo apt-get update sudo apt-get install ruby2.2
インストールを確認
ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux-gnu]
インストール完了を確認
参考
http://www.oiax.jp/rails/zakkan/apt-get-install-ruby2-1.html
作業用のフォルダ(work)を作成する
cd ~ mkdir work cd work
SSH接続プログラム ssh01.rbを作成
参考
vi ssh01.rb
i(挿入)
#!/usr/bin/env ruby # -*- encoding: UTF-8 -*- require 'rubygems' require 'net/ssh' command="ls -la" cmd_data="" # Net::SSH.start('xxx.xxx.xxx.xxx', 'usrename', :password => 'password' ,:port => 22) do |ssh| Net::SSH.start('xxx.xxx.xxx.xxx', 'usrename',:keys => ['//home/xxxx/key-2015-0x-xx-xx-xx.pem'],:port => 22) do |ssh| ssh.open_channel do |channel| channel.request_pty do |ch , success| raise "I can't get pty rquest" unless success ch.exec(command) ch.on_data do |ch , data| data = data.strip cmd_data << data if data.size > 0 puts data end end end end
ESC+:wqで、保存終了
実行してみる
ruby ssh01.rb
エラーになる
/usr/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in <code>require': cannot load such file -- net/ssh (LoadError)
net/ssh が、ないようだ
参考
http://morizyun.github.io/blog/net-ssh-net-scp-gem-ruby/
http://qiita.com/znz/items/5471e5826fde29fa9a80
gem で、bundlerをインストールする必要がある
gem -v
2.4.5.1
gemは、入っている
bundler -v コマンド 'bundler' は見つかりませんでした。もしかして: コマンド 'bundle' - パッケージ 'bundler' (universe) bundler: コマンドが見つかりません
bundlerはないようだ。
gem install bundler
で bundler をインストール
Fetching: bundler-1.10.6.gem (100%) ERROR: While executing gem ... (Errno::EACCES) Permission denied @ dir_s_mkdir - /var/lib/gems
Permissionエラーなので、
sudoでないといけないようだ
sudo gem install bundler
実行すると
Fetching: bundler-1.10.6.gem (100%) Successfully installed bundler-1.10.6 Parsing documentation for bundler-1.10.6 Installing ri documentation for bundler-1.10.6 Done installing documentation for bundler after 4 seconds 1 gem installed
となった、インストールできたようだ
一応、確認
bundler -v
Bundler version 1.10.6
インストール確認OK
Gimfileを作る
cd ~/work bundle init ls
Gemfile
が、できている
Gemfile
に、gem “net-ssh”を追加する
vi Gemfile
i(挿入)
gem “net-ssh”
を追加
ESC+:wqで保存終了
bundleを実行し、net-sshを読み込む
bundle
実行すると
bundle Fetching gem metadata from https://rubygems.org/....... Fetching version metadata from https://rubygems.org/.. Resolving dependencies... Installing net-ssh 2.9.2 Using bundler 1.10.6 Bundle complete! 2 Gemfile dependencies, 3 gems now installed. Use </code>bundle show [gemname]` to see where a bundled gem is installed.
インストールできたようだ
再度、実行してみる
cd ~/work ruby ssh01.rb
sshで接続し、commdを実行できた
合計 44
dr-xr-x—. 4 root root 4096 5月 24 20:05 2015 .
dr-xr-xr-x. 24 root root 4096 5月 24 07:51 2015 ..
drwxr-xr-x. 3 root root 4096 5月 4 16:22 2015 .ansible
-rw——- 1 root root 2080 9月 24 21:42 2015 .bash_history
-rw-r–r–. 1 root root 18 5月 20 19:45 2009 .bash_logout
-rw-r–r–. 1 root root 176 5月 20 19:45 2009 .bash_profile
-rw-r–r–. 1 root root 176 9月 23 12:59 2004 .bashrc
-rw-r–r–. 1 root root 100 9月 23 12:59 2004 .cshrc
drwx—— 2 root root 4096 8月 30 12:27 2015 .ssh
-rw-r–r–. 1 root root 129 12月 4 06:42 2004 .tcshrc
-rw——- 1 root root 1293 5月 24 11:44 2015 .viminfo