本日でssh接続攻略です。

ウェブサーバーがクライアント(開発機)からのアクセスをどう判別していたか、sshのインストール過程で仕組みを理解できました!

 

まずはサーバー側

①サーバーにopenSSH Serverをインストール。

sudo apt-get install openssh-server

②インストールができたら、sshdの設定

sudo vi /etc/ssh/sshd_config

configファイルに記載されている下記のフラグを修正。

PermitRootLogin no  → ルートログインを拒否 
PermitEmptyPasswords no  → 空のパスワードを拒否
PasswordAuthentication no → パスワード認証を拒否(公開鍵認証)

③sshdを再起動

sudo /etc/init.d/ssh restart

続いてクライアント側(mac lion)

④ターミナルを開き、公開鍵を生成

ssh-keygen

パスワードを求められるので適当に入力。 <Enter>

id_rsa.pub をSCPかなんかんでサーバー側にコピー

scp .ssh/id_rsa.pub “ログインユーザー名”@”サーバーアドレス”:~/.ssh/authorized_keys

要は、サーバー側のauthorized_keysファイルにクライアント側のid_rsa.pubの内容を加筆すればいいという話です。どうにかして加筆してください。

(念のため)サーバー側に戻り、
⑤authorized_keysと.ssh/のアクセス権限を修正

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

アクセス権限がおかしいと接続時に怒られるらしい。

いざサーバーに接続。

とりあえずローカルネットワークに居るサーバーに向けて

ssh t_ishiyama@Sun.local

無事つながりました。

スクリーンショット 2013-02-11 20.18.12のコピー

んん…なんか死んでるプロセスがあるな…まあ気にせず。

公開鍵の登録が済んでないと、こんな感じに怒られます。

1

(結局)サーバーをオープンにするほどセキュリティ周りがかなり不安なんですが、UFWでもつけておけばいいのかな…?教えて詳しい人。

参考: MacBookからUbuntuへsshで繋ぐ – 今日とは違う明日