質問: sambaファイルサーバーにsshで接続するにはどうすればよいですか? そこで、debian(3.2)マシン上に専用のsambaファイルサーバーを作成しました。私はwindowsとunixの両方からアクセスすることに大きな成功を収めました。ローカルネットワーク上でsshで接続できます。パブリックipアドレスを介してsshで接続しようとすると、接続が拒否されたと表示されます。samba共有に直接接続して、リモートでssh接続できるようにしたいと思います。どうすればこれを行うことができますか?ポートフォワードが必要になる可能性があると聞きましたか? smb.confファイルの何かを変更する必要がありますか?これが私のsshd_configファイルです:# package generated configuration file # see the sshd_config(5) manpage for details # what ports, ips and protocols we listen for port 22 # use these options to restrict which interfaces/protocols sshd will bind to #listenaddress :: #listenaddress 0.0.0.0 protocol 2 # hostkeys for protocol version 2 hostkey /etc/ssh/ssh_host_rsa_key hostkey /etc/ssh/ssh_host_dsa_key #privilege separation is turned on for security useprivilegeseparation yes # lifetime and size of ephemeral version 1 server key keyregenerationinterval 3600 serverkeybits 768 # logging syslogfacility auth loglevel info # authentication: logingracetime 120 permitrootlogin yes strictmodes yes rsaauthentication yes pubkeyauthentication yes #authorizedkeysfile %h/.ssh/authorized_keys # don't read the user's ~/.rhosts and ~/.shosts files ignorerhosts yes # for this to work you will also need host keys in /etc/ssh_known_hosts rhostsrsaauthentication no # similar for protocol version 2 hostbasedauthentication no # uncomment if you don't trust ~/.ssh/known_hosts for rhostsrsaauthentication #ignoreuserknownhosts yes # to enable empty passwords, change to yes (not recommended) permitemptypasswords no # change to yes to enable challenge-response passwords (beware issues with # some pam modules and threads) challengeresponseauthentication no # change to no to disable tunnelled clear text passwords #passwordauthentication yes # kerberos options #kerberosauthentication no #kerberosgetafstoken no #kerberosorlocalpasswd yes #kerberosticketcleanup yes # gssapi options #gssapiauthentication no #gssapicleanupcredentials yes x11forwarding yes x11displayoffset 10 printmotd no printlastlog yes tcpkeepalive yes #uselogin no #maxstartups 10:30:60 #banner /etc/issue.net # allow client to pass locale environment variables acceptenv lang lc_* subsystem sftp /usr/lib/openssh/sftp-server # set this to 'yes' to enable pam authentication, account processing, # and session processing. if this is enabled, pam authentication will # be allowed through the challengeresponseauthentication and # passwordauthentication. depending on your pam configuration, # pam authentication via challengeresponseauthentication may bypass # the setting of "permitrootlogin without-password". # if you just want the pam account and session checks to run without # pam authentication, then enable this but set passwordauthentication # and challengeresponseauthentication to 'no'. usepam yes
回答: scriptonaut、おそらくあなたの問題はsambaとは何の関係もありませんが、ポートフォワーディング/ natと関係があります。ルーターの背後にあるlanネットワーク内のdebianコンピューターにサービスを提供するsambaがある場合は、そのポートの一部からsamba実行中のマシンに要求を転送するように構成する必要があります。まず、発信接続がルーターとどのように連携するかを説明します。 2台のマシンがtcp/ipを介して通信する場合、各マシン(送信元マシンと宛先マシン)はip /ポート番号のペアでアドレス指定されるため、接続は送信元ip /ポート番号と宛先ip /ポート番号の2つのペアによって決定されます。mozillaでタブを開き、192.168.1.2マシンでgoogleにアクセスすると、ipパケットの一部がルーターに転送されます。ルーターの送信元アドレスはip = 192.168.1.2で、割り当てられた任意の発信tcpポート番号です。ブラウザのそのタブ(43694など)は、ルーターにそのパケットをそのマシンの80ポートの特定のipでgoogleマシンに転送するように要求します。これは、80が着信http接続の標準ポートであるためです(標準のtcp linuxの/etc/servicesファイルの_ポート)。ルーターは、独自のポートをランダムに割り当て(eg12345)、そのパケットの送信元ip /ポートペアを独自のwan ip(74.25.14.86)とポート12345に置き換え、応答があった場合にそれを記憶します。 googleのポート12345では、その応答を192.168.1.2のポート43694に自動的に転送する必要があります。では、外部マシンがサーバーにアクセスしようとするとどうなりますか?外部マシンからsambaサーバーにアクセスしようとすると、ipパケットがwan ip = 74.25.14.86、ポート22に送信されます(22は標準のtcpであるため) ssh接続をリッスンするためのポート。linuxの/etc/servicesファイルに標準のtcpポートのリストが表示されます。ルーターはそのパケットを受信します。デフォルトでは、ルーターのファイアウォールは、そのポートにバインドされた発信接続がない場合、任意のポートへのすべての着信接続をブロックするように構成されています(したがって、以前のケースでgoogleにアクセスしていたとき、ルーターはgoogleからポートへの応答をブロックしませんでしたそれ自体の12345、それはあなたの192.168.1.2がグーグルへの接続を開始し、グーグルからの応答がポート12345に来るはずであることを思い出したからです。ただし、外界からそのポート22への接続を開始する試みはブロックされます。これは、lanから着信する接続に対してポート22がマップされていないためです。したがって、必要なことは、外部から192.168.1.2のポート22にポート22へのすべての接続を転送するようにルーターを構成することです。これは、ハードウェアルーターのwebインターフェイスで実行できます。通常、必要なメニューオプションは、「ポート転送」または「nat-ネットワークアドレス変換」と呼ばれます。