タグ : ssh

[ssh] Warning: the RSA host key for ‘server_name’ differs from the key for the IP address ‘xxx’ の解決方法

EC2 instance を新しくした後 /etc/hosts を編集して、hostname はそのままで ip address だけ変更して ssh したら毎回下記のような警告メッセージが表示されるようになってしまいました。

[ec2-user@hoge ~]$ ssh server_name
Warning: the RSA host key for 'server_name' differs from the key for the IP address '10.123.123.123'
Offending key for IP in /home/ec2-user/.ssh/known_hosts:232
Matching host key in /home/ec2-user/.ssh/known_hosts:46
Are you sure you want to continue connecting (yes/no)?

known_hosts に host name と ip address の古い組合せの接続情報が残っているのが原因なので Matching host key in /home/ec2-user/.ssh/known_hosts:46 のメッセージに書かれているように known_hosts の 46 行目を削除しましょう。

[ec2-user@hoge ~]$ vim .ssh/known_hosts
# 46 行目を削除する

known_hosts を編集後、再び ssh します。

[ec2-user@hoge ~]$ ssh server_name
The authenticity of host 'server_name (10.123.123.123)' can't be established.
ECDSA key fingerprint is 6b:d3:33:ab:75:ee:50:dc:f0:0a:ca:7c:7e:bd:14:8e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server_name' (ECDSA) to the list of known hosts.

その後、切断してもう1度 ssh すると Warning メッセージが表示されなりました。

[ec2-user@hoge ~]$ ssh server_name
Last login: Thu Dec 31 00:48:26 2015 from forward_proxy1
 
       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

以上です。

[Linux] 多段 ssh/scp の設定

複数のサーバを経由して ssh や scp コマンドを叩きまくるのが面倒くさいので直接 ssh/scp できる設定を .ssh/config ファイルに追加しました。

多段 ssh/scp の設定方法

設定前はローカル環境で ssh server1 した後に server1 にて ssh server2 という手順で2回 ssh していました。

# .ssh/config file
Host server2.example.com
  ProxyCommand ssh server1.example.com nc %h %p
  IdentityFile    ~/.ssh/server1_example_com.pem
  User            ec2-user

設定後は server1 を介さずに直接 ssh server2 できるようになります。

scp コマンドでのファイル転送も下記のように直接できるようになるので超便利です!

scp ~/Downloads/spam.csv server2:

複数サーバを経由して ssh や scp をする機会がある方はぜひ設定してみてください。


参考情報

[SSH] パスワード未設定な user で ssh 接続すると公開鍵認証のみでも失敗する

パスワード未設定 user で ssh 接続しようとすると公開鍵認証のみでも失敗してしまうみたいです。

-v オプションをつけて ssh 接続してみると Permission denied (publickey).

ssh your_usernama@123.456.789.123 -v
...
 
debug1: No more authentication methods to try.
Permission denied (publickey).

Permission denied (publickey). が表示されているときはサーバ上の /var/log/secure にログが出ているので確認してみます。

# tail -F /var/log/secure
Jun 28 18:44:57 host sshd[1370]: User your_username not allowed because account is locked
Jun 28 18:44:57 host sshd[1372]: input_userauth_request: invalid user your_username
Jun 28 18:44:57 host sshd[1372]: Connection closed by 123.123.123.123

sshd_config の設定でパスワードを設定していないユーザが ssh でログインできないようになっているようなので、おとなしく user にパスワードを設定します。

passwd your_username

セキュリティ高めるためにも user には最初からパスワード設定しましょう…。


参考情報

[SSH] Received disconnect from xxx : 2: Too many authentication failures for username

ssh で下記のようなエラーが発生しました。

ssh t_shigeoka@codenote.net -i ~/.ssh/id_rsa_t_shigeoka
Received disconnect from 184.169.144.233: 2: Too many authentication failures for t_shigeoka

サーバーにログインするための user を作成しまくって、接続テストをしていたため登録している鍵が多すぎてこうなってしまったっぽい。

ssh-add -D

して、エージェントから全ての鍵情報を取り除くことで解決しました。


参考情報

sshで「Too many authentication failures for …」が出た場合の対処法 – tkuchikiの日記

モバイル SSH クライアント「ServerAuditor」が Android や iPhone から使えて便利!

明日からお盆休みということで、iPhone からサーバーに ssh ログインできるように ServerAuditor というアプリをインストールしました。

ServerAuditor

下記、僕がつまづいた点を共有します。

ssh key の設定

ssh の秘密鍵は iTunes 経由でファイルをアプリに転送することができます。

コンソールをスクロールする方法

コンソールをシングルタップすると、編集モード (edit mode) とプレビューモード (preview mode) に切り替えることができます。編集モードとプレビューモードの見分け方は、キーボードの上部にカスタムキーボードが表示されているかどうかで判別できます。

迷いそうな点については help ボタンから詳しく確認することができます。

下記、2014/08/13 時点での help ページのスクリーンショットです。

ServerAuditor-help1

ServerAuditor-help2

ServerAuditor-help3

まとめ

気休め程度ですが iPhone からも ssh 接続できるようにしておくと休暇中も安心できそうです。はい。

[仮想OS] VirtualBox のNAT + ホストオンリーアダプターでのネットワーク設定/ホストOS からSSHできないときの解決方法

VirtualBox にて CentOS5.6 を仮想サーバーとしてインストールしたのですが、ホストOSからSSHできない症状に陥りました。

@yak0u さんにアドバイスを頂いて、なんとか解決したのでその方法とネットワーク設定をご紹介します。

VirtualBoxのネットワーク設定

まず、VirtualBoxのネットワーク設定はここを参考にすればOKです。

仮想環境VirtualBoxでのネットワークの設定 : アシアルブログ

仮想OSのファイヤーウォール設定

まず、ファイヤーウォールの設定を変更します。下記サイトの「iptablesの確認」を参考にして設定します。

VMware PlayerにCentOS導入。練習用Webサーバーを構築4

# vi /etc/sysconfig/iptables
# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

22番ポートが閉じているとSSH通信ができなくて、80番ポートが閉じているとブラウザからWebページに接続できません。

編集後、iptablesを再起動します。

# /etc/rc.d/init.d/iptables restart

仮想OS上のネットワーク設定

まず、ネットワーク設定の解説をしてくれている良記事があるのでこれを読みます。

VirtualBox を利用する際のネットワーク設定の話 – ゆどうふろぐ

次に、ホストオンリーアダプターに割り当てるために、空いているローカルIPアドレスをpingコマンドで調べます。

MacでPingを使用してネットワークが正常に利用可能か調べる方法 / Inforati

$ ping -c 5 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
 
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss

VirtualBoxで仮想マシンを起動後、ホストOSであるMacにて ifconfig コマンドを実行します。

.
.
.
vboxnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 0a:00:27:00:00:00 
	inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255

VirtualBoxの vboxnet0 にて 192.168.1.1 が使われていることが分かりました。

また、ホストOS(Mac)にて、再び pingコマンドを実行すると、今度はレスポンスがありました。

$ ping -c 5 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.052 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.145 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.125 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.055 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.118 ms
 
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.052/0.099/0.145/0.038 ms

同様に、ゲストOS(仮想マシン)でもpingコマンドを実行するとレスポンスがありました。

これで「192.168.1.1」のIPアドレスは仮想マシンでちゃんと使われていることが確認できました。

ホストオンリーアダプターに対応するeth1にローカルIPアドレスを固定する

仮想マシンを起動する度にホストオンリーアダプターに対応する IP が変わらないように、IPアドレスを固定します。

ifconfig コマンドで、eth1 に現在割り当てられている IPアドレスを調べて、それを固定 IP として設定すれば問題ないと思います。

・参考:VirtualBox 2.2 と CentOS 5.3 でローカル開発環境 – もやし日記

僕の場合、ifconfig コマンドを実行しても eth1 が表示されませんでした。

なので、eth1 を編集します。

まず、ローカルIPアドレス 192.168.1.2 が使われていないか確認します。

(使われていたら、192.168.1.3, 192.168.1.4, … と順番に空いているローカルIPアドレスを調べます。)

空いているローカルIPアドレスが分かったら、ifcfg-eth1 にIPアドレスを書きます。

[root@localhost ~]# emacs /etc/sysconfig/network-scripts/ifcfg-eth1
 
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth1
BOOTPROTO=static                    # dhcp から static に変更
HWADDR=08:00:27:F7:6C:DE
ONBOOT=yes
IPADDR=192.168.1.2                   # 追加
NETMASK=255.255.255.0            # 追加

eth1 を編集後、設定を反映させます。

[root@localhost ~]# ifdown eth1
[root@localhost ~]# ifup eth1

ホストOS(Mac)から ssh コマンドでホストOS(仮想マシン)に接続できました。

ローカルIPでssh接続する方法 – Makotontonのひだまりずむ

$ ssh root@192.168.1.1
ssh: connect to host 192.168.1.1 port 22: Connection refused
 
$ ssh root@192.168.1.2
The authenticity of host '192.168.1.2 (192.168.1.2)' can't be established.
RSA key fingerprint is 48:8e:56:2f:95:59:d9:d9:c0:af:cb:6f:ef:ea:ee:bc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.2' (RSA) to the list of known hosts.
root@192.168.1.2's password: 
Last login: Wed May 11 13:30:46 2011
[root@localhost ~]#

以上です。