仮想マシンのGUIを使用したくない場合は、ゲストOSにSSHで接続する機能があると便利です。ターミナルで複数のウィンドウを開かなくても、VMをヘッドレスモードで起動し、SSHで送受信するだけです。
SSHの概念に不慣れな方のために、セットアップに飛び込む前に、SSHの仕組みについて簡単に紹介します。また、LAN内のどこからでもそのVMにアクセスできるように、VMのネットワーク関連の設定について説明する必要があります。
SSHがどのように機能するかの簡略化されたモデルを次に示します。ローカルコンピューターでキーのペアを作成します。公開鍵と秘密鍵。公開鍵を使用して暗号化されたメッセージは、秘密鍵を使用して復号化でき、その逆も可能です。これらの鍵は通常、ローカルコンピューターのパス ~/.ssh/id_rsa
(秘密鍵)および ~/.ssh/id_rsa.pem
(公開鍵)に保存されます。
次に、リモートサーバーに移動し、通常ユーザーまたはrootユーザーとしてコンソールにログインし、そのサーバーのファイル ~/.ssh/authorized_keys
を開きます。ここでは、公開鍵の内容をそのまま入力します。それが完了したら、ローカルデバイスから、.sshディレクトリにauthorized_keysが含まれているサーバー上のそのユーザーとしてsshを実行できます。
NS .NS 拡張子は、そのファイルが誰とでも共有できる公開鍵であることを意味します。 NS id_rsa 部 使用されている暗号化暗号を示しているだけです(この場合はRSAです)。秘密鍵は、その秘密鍵を使用してリモートサーバーにログインするたびに、入力する必要のあるパスフレーズによってさらに保護できます。
ローカルコンピュータとしてMac、Linux、またはその他のUNIXライクなシステムを使用している場合は、ターミナルを使用してキーを生成および管理できます。また、同じターミナルを使用してリモートサーバーにSSHで接続することもできます。 Windowsユーザーの場合は、使用することをお勧めします パテ また Git Bash 後者は私の個人的な好みです。 SSHクライアントがあれば、コマンドはほとんど同じです。
SSHキーの設定
まず、ホームディレクトリにsshキーがまだないかどうかを確認します。ホームディレクトリの内容を確認してください .ssh フォルダ。疑わしい場合は、次のコマンドを実行する前に内容をバックアップしてください。 Filezillaのようなプログラムは、ユーザーの知らないうちに常にSSHキーを使用するため、この手順はかなり重要です。
あなたの中で ローカルマシン 、ターミナルを開き、次のコマンドを入力します。
$ssh-keygenこれに続いて、デフォルト値を示す括弧内の値を含む次のプロンプトが表示されます。プロンプトを続行し、キーに安全なパスフレーズを入力します。
内容を確認して、キーが作成されていることを確認します 〜/ .ssh フォルダ。
$ls -に〜/.sshに表示されるデフォルト値と一致するファイルが表示された場合 ssh-keygen プロンプトが表示されたら、すべてが正常に機能しています。
次に、コンソールを開いて 仮想マシン 。まず、VMでSSHサーバーが実行されているかどうかを確認します。
$servicesshdステータス
インストールされていない場合は、パッケージマネージャーを使用してOpenSSHサーバーを検索してインストールします。それが完了したら、VMのファイアウォールがポート番号22で開いていることを確認します。たとえば、UbuntuをVMとして使用している場合、デフォルトのファイアウォール ufw 次のように、無効にするか、ポート22接続を許可する必要があります。
$sudoufwステータス
ifがポート22で開いていない場合は、次のコマンドを使用します。
$sudoufw allowssh次にファイルを開きます 〜/ .ssh / authorized_keys VMで、お気に入りのテキストエディタを使用します。この次のステップでは、ホストからゲストまたは双方向クリップボードを有効にすることをお勧めします。
このファイル内(空でない場合はファイルの下部)に、ファイルの内容を貼り付けます 公開鍵。 あなたの名前とキーが生成されたローカルホストを示す最後の部分は、文字列の残りの部分ほど重要ではありません。
(オプション)SSHキーを使用しない
ローカルネットワークを信頼している場合は、UNIXパスワードを使用する安全性の低い方法を使用して、VMにSSH接続できます。ファイルを開く / etc / ssh / sshd_config VMで、次の行を置き換えます。
#PasswordAuthenticationいいえに
PasswordAuthenticationはい
それが整ったら、SSHサーバーを再起動します。
$service sshd restartこれで、VMへのログインに使用する通常のパスワードを使用してVMにSSH接続することもできます。
仮想マシンとネットワーク
VMにSSHで接続するには、ローカルコンピューター(秘密鍵を持つコンピューター)とVMの両方が同じネットワーク上にある必要があります。そのため、そのVMのIPアドレスにアクセスできます。 VMをLANに追加する方法を説明します。
典型的なホームルーターのセットアップの例を考えてみましょう。コンピューターは、他のデバイスとともに、ホームルーターに接続されています。このルーターはDHCPサーバーとしても機能します。つまり、ルーターに接続されている各デバイスに一意のプライベートIPアドレスを割り当てます。デスクトップはIPを取得し、電話とラップトップもIPを取得します。このルーターに接続されているデバイスのみが、IPアドレスを介して相互に通信できます。
VMの設定でブリッジネットワークモードを有効にすると、VMはプライベートIPを使用してホームルーター(または同様のDHCPサーバー)に接続されているように表示されます。 2番目のデバイスが同じネットワーク(たとえば、同じホームルーター)に接続されている場合は、それを使用してVMにSSH接続できます。
VirtualBox Managerを開き、ターゲットVMを選択して、 設定→ネットワーク NATの代わりにブリッジネットワークを選択します。
ご覧のとおり、私のホストはワイヤレスを使用して接続されているため、接続もVMによって共有されます。イーサネットを使用している場合は、別のインターフェイス名が表示されますが、これで問題ありません。
さて、私のVMは ubuntuvm、 LAN設定に次のように表示されます。ルーターの設定をチェックして、同じことが機能するかどうかを確認してください。
VMのIPアドレスがわかったら、次のコマンドを実行してVMにSSHで接続できます。
$ssh <ユーザー名> @ip.address.of.your.vm
上記の手順で秘密鍵のパスフレーズを入力した場合は、再入力するように求められます。
それでおしまい!これで、VMをヘッドレスモードで起動し、家のどこからでもVMにSSH接続できます。このチュートリアルがおもしろいと思ったら、取り上げてほしいトピックがあればお知らせください。