お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-12-29 02:58:55

oosamuuy
メンバ
登録日: 2009-03-09

sshの接続環境でLAN内とLAN外

 お世話になります。
 この度久しぶりにSSHの設定をしたのですが、ちょっとわからない部分があったので質問させてください。

 現在、Opensshを使って通常の共通鍵と公開鍵&秘密鍵のセットでやっています。ユーザーの通常のパスワード認証で通信していますが、LAN内のクライアントからは接続が可能ですが、LAN外(インターネット側)からのグローバルIPアドレスからの接続では、
Permission denied (publickey, gssapi-with-mic, password).
というメッセージで接続が拒否されてしまいます。調べてみたところ、~/.ssh/authorized_keysのパーミッションの問題だとか…。
そのファイルを探してみたら、.sshの中が空っぽでした。

 設定の方法は方々のサイトから自分で調べてやったのですが、何か間違っているような気がしないでもありません。ポートの設定や認証関係の設定はきちんとやっているつもりではあるのですが、何か間違っているのかもしれません。
 
 設定している項目は至って簡単で、インストール後に/etc/ssh/ssh_configを以下のように設定しているだけです。
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
Port 1234
PermitRootLogin no
PasswordAuthentication yes
PermitEmptyPasswords no
ClientAliveInterval 60

クライアントからの接続では、
<ユーザー名>@<LAN内のIP(192.168.xxx.xxx)>
では普通に接続できるのですが、
<ユーザー名>@<グローバルIP(121.222.xxx.xxx)>
では、Permission denied (publickey, gssapi-with-mic, password).で拒否されてしまいます。
できれば、インターネット側からも接続可能にしたいのですが、どうすればよいでしょうか?
もしかしたらsshの問題ではなくネットワーク設定の問題なのでしょうか?詳しい方がいましたらおしえてください。よろしく願いします。

オフライン

 

#2 2009-12-29 03:38:38

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: sshの接続環境でLAN内とLAN外

ルータ Port 1234 ポートは開いてますか?
ルータ 転送設定は ok ですか?
サーバの /etc/ssh/ssh_config ではなく /etc/ssh/sshd_config の設定は?
~/.ssh のパーミッションの問題なら、LAN内からも多分エラーになる(?)と思います。

オフライン

 

#3 2009-12-29 08:08:07

ry
メンバ
登録日: 2008-07-30

Re: sshの接続環境でLAN内とLAN外

#1の oosamuuyさん による投稿:

Opensshを使って通常の共通鍵と公開鍵&秘密鍵のセットでやっています。ユーザーの通常のパスワード認証で通信しています

公開鍵認証を使って通信しているのか、パスワード認証を使って通信しているのかどちらでしょう
それとも、ユーザーによって、公開鍵認証とパスワード認証を使い分けているとか、クライアントとして使う PC によって使い分けているとかでしょうか

~/.ssh/authorized_keys ファイルは公開鍵認証のときにだけ使われ、パスワード認証では使われません
また、~/.ssh/authorized_keys ファイルはユーザー自身で作成するもので、sshd アプリケーションが自動的に作成するものでもありません

~/.ssh ディレクトリが空だということは、LAN 内のクライアントからはパスワード認証で通信しているのだと推察します
そして、LAN 外からの通信で ~/.ssh/authorized_keys ファイルに対するパーミッションのエラーが出ることから、LAN 外のクライアントは公開鍵認証をしようとしているのではないでしょうか

もしこの推察で合っているなら、LAN 外から接続しようとしているユーザーのホームディレクトリの ~/.ssh/authorized_keys ファイルを予め作成しておいてください
~/.ssh/authorized_keys ファイルの内容は、接続しようとしているユーザーの公開鍵です

オフライン

 

#4 2009-12-29 22:23:03

oosamuuy
メンバ
登録日: 2009-03-09

Re: sshの接続環境でLAN内とLAN外

siさんryさんありがとうございます。
一人で設定していてドン詰まっていたところでいろいろとヒントをいただきありがとうごじざいます。

>siさん
ずばり、僕はssh_configとsshd_configを間違っていました。非常にマヌケな設定をしておりました。ssh_configの設定をそのままsshd_configにもっていったらうまく公開鍵の認証ができました。。。。

>ryさん
>また、~/.ssh/authorized_keys ファイルはユーザー自身で作成するもので、sshd アプリケーションが自動的に作成するものでもありません
実にこの一点でした。自動で作成されるものと手動で設置しなければならないものの区別ができていませんでした。クライアント側から公開鍵をコピーして無事終了しました。
 お察しの通り、LAN内からはパスワード認証で、インターネットを介しては公開鍵認証でいこうと思っていたのですが、面倒なのですべて公開鍵認証で設定することができました。

 調べても調べてもうまくいかなかったので、とてもありがたいです。また何かありましたらよろしくお願いします。

オフライン

 

Board footer

Powered by FluxBB