コンピューターにリモートで接続する場合、最も安全で最良の方法の1つは、Secure Shell(SSH)接続を使用することです。これにより、ユーザーとリモートホストの間に暗号化された接続が作成され、送信されるデータが傍受されたり監視されたりすることがなくなります。
SSHを介した安全なVNC接続(secure VNC connection over SSH)など、他のトラフィックのトンネルとしてSSHを使用することもできます。SSH接続をさらに安全にする方法の1つは、 SSHキーを使用することです。これにより、解読しやすい可能性のあるパスワードが617桁の暗号化キーに置き換えられます。ここでは、 Windows(Windows)、Mac、およびLinuxコンピューターで新しいSSHキーを生成する方法を説明します。
SSHキーとは何ですか?(What Are SSH Keys?)
SSHキーを使用すると、 (SSH)Secure Shellプロトコルを使用してパスワードを使用せずに、リモートサーバーまたはPCへの安全な接続を作成できます。SSHキーはペアで作成され、秘密キーと公開キーは接続されたままになります。一方を他方なしで使用することはできません。
ほとんどの場合、接続を暗号化するために公開鍵はリモートPCまたはサーバーに残ります。次に、秘密鍵を使用してそのリモートデバイスで認証し、パスワードを入力しなくても接続して使用できるようにします。
公開(Public)SSHキーと秘密SSHキーは、同じ全体の2つの部分です。秘密キーがないと、公開キーで認証して接続を確立することはできません。公開キーがないと、秘密キーは役に立ちません。Windows、Mac、およびLinuxで新しい(Linux)SSHキーを生成してから、公開(public )キーをリモートデバイスに転送できます。
秘密(private)鍵は、PCまたはMacに安全に保存されます。このキーのコピーを安全に保存することが重要です(たとえば、パスワードマネージャー(password manager)を使用して)。紛失すると、リモート接続を再確立できない場合があります。
また、公開鍵または秘密鍵を他の人と共有しないことも重要ですが、特に秘密鍵(またはそれを復号化する可能性のあるパスフレーズ)を共有することは重要です。秘密鍵を自由に使用できるため、不正なユーザーは追加の認証を必要とせずにリモートデバイスへの接続を確立できます。
Windowsを使用してSSHキーを生成する方法(How to Use Windows to Generate SSH Keys)
Windowsを使用して、組み込みのOpenSSHクライアントまたは一般的なサードパーティのPuTTYクライアントを使用して(PuTTY)SSHキーを生成できます。グラフィカルユーザーインターフェイス(GUI)を使用して新しいSSHキーを作成する場合は、PuTTYが最適なオプションです。組み込みのソフトウェアを使用する場合は、代わりにOpenSSH ( Windows PowerShell経由)を使用してください。
WindowsPowerShellを介したOpenSSHの使用(Using OpenSSH via Windows PowerShell)
- OpenSSHを使用する場合は、最初にOpenSSHが有効になっていることを最初に確認する必要があります。これを行うには、[スタート(Start)]メニューを右クリックし、[設定(Settings)]を選択します。
- [設定](Settings)メニューで、[アプリ(Apps )] >[アプリと機能(Apps & features )] >[オプション機能(Optional features)]を選択します。
- OpenSSHクライアント(OpenSSH Client)エントリの[オプション機能(Optional features)]メニューを確認します。そこにない場合は、[機能の追加]を選択します(Add a feature)。
- [ OpenSSHクライアント(OpenSSH Client )]オプションを選択し、[インストール(Install)]を選択してインストールします。Windowsが必要なソフトウェアをインストールするまでしばらく待ちます。SSHを使用して(SSH)WindowsPC(Windows)に接続する場合は、必ずOpenSSHサーバー(OpenSSH Server )オプションも選択してください。
- OpenSSHがインストールされている状態で、[スタート(Start)]メニューを右クリックし、 [ Windows PowerShell(管理者)(Windows PowerShell (Admin)) ]を選択します。
- 新しいWindowsPowerShellウィンドウで、ssh-keygenと入力し、 (ssh-keygen)Enterキーを選択します。この時点で、キーの新しい保存場所とファイル名を入力するか、もう一度Enterキーを押して(enter)、ファイルをC:\Users\user\.ssh\ ユーザー(user)を独自のユーザーディレクトリに置き換えます)。
ssh-keygenツールはデフォルトでRSA暗号化を使用しますが、代わりにssh-keygen -t methodと入力して、使用可能な暗号化オプションの1つ(dsa (method)、ecdsa、ed25519、rsa(dsa, ecdsa, ed25519, rsa) )に置き換えて、別の形式の暗号化に切り替えることができます。
- 次に、パスフレーズを入力する必要があります。これにより、PCの秘密鍵が暗号化され、必須ではありませんが、通常は推奨されます。覚えやすい単語やフレーズを使用できますが、代わりにここで安全なパスワードを使用することもできます。(use a secure password)パス(Type)フレーズを入力し、 Enterを選択して確認するか、単に空白のままにしてEnterを選択して空白のままにします。
- パスフレーズを追加すると、Windowsは(Windows)C:\Users\user\.ssh\ フォルダーに必要なキーを生成します(ユーザー(user)を独自のユーザーフォルダー名に置き換えます)。デフォルトのファイル名を使用することを選択した場合、id_rsa.pubファイルが公開鍵であり、id_rsa(拡張子なし)が秘密鍵です。鍵を生成したら、公開鍵を移動する必要があります。リモートPC、Mac、またはサーバーの.sshディレクトリへのキー(id_rsa.pub) 。
PuTTYの使用(Using PuTTY)
よく知られているPuTTYSSHクライアントは、ほとんどのWindowsユーザーのデフォルトクライアントです。これには、新しいSSHキーを生成するためのツールであるPuTTYgenなど、 (PuTTYgen)SSH接続を確立するための他のいくつかのツールが含まれています。
- PuTTYを使用してSSHキーを生成するには、PC用のPuTTYをダウンロードして(download PuTTY for your PC)インストールします。インストールしたら、[スタート(Start)]メニューからPuTTYgen(付属のSSHジェネレータツール)を起動し、[キーの種類]から[ (Type of key to generate)RSA ]を選択してオプションを生成し、[生成(Generate)]を選択します。代替の暗号化オプションの1つを選択することもできますが、以下の手順は異なる場合があります。
- キーを生成するプロセスの一部は、マウスをランダムに動かすことです。キーペアが生成されるまで、マウスまたはトラックパッドを使用して、プログレスバーのすぐ下の領域でこれを行います。
- キーにパスフレーズを追加する場合は、[キーパスフレーズ]ボックスと[パスフレーズ(Key passphrase )の確認]ボックスにこれを入力し、[(Confirm passphrase)公開キー(Save public key)の保存]と[秘密キー(Save private key)の保存]を選択してキーを保存します。OpenSSHのauthorized_keysボックスに貼り付ける公開鍵(Public key for pasting into OpenSSH authorized_keys )のテキストを選択し、右クリックして[コピー]を選択し(Copy)て、手動でコピーしてファイルに貼り付けることもできます。
- キーを保存したら、公開キー(public key )をリモートPC、Mac、またはサーバーに移動できます。秘密鍵(private key)の場合、優先SSHクライアントで使用するには、これをC:\Users\user\.ssh\フォルダーに移動する必要がある場合があります(ユーザー(user )を正しいユーザーディレクトリに置き換えます)。
LinuxまたはMacでSSHキーを生成する方法(How to Generate SSH Keys on Linux or Mac)
OpenSSHは(OpenSSH)SSH管理用のゴールドスタンダードのツールセットであり、 Windowsバージョンと同様に、ssh-keygenツールは(ssh-keygen)MacまたはLinuxコンピューターで新しいSSHキーを生成するための最良の方法です。
結果として、SSHキーを生成するための(SSH)GUIツールはまれであり、通常は推奨されません。OpenSSHツールはすべてのMacコンピューターとほぼすべてのLinuxディストリビューション(all Linux distributions)に含まれているため、以下の手順は両方のプラットフォームで機能するはずです。
- まず、LinuxPCまたはMacで新しいターミナルウィンドウを開きます。Macを使用してSSHキーを生成する場合は、 Launchpadを使用して(Launchpad)ターミナル(Terminal)アプリを起動できます。Linux PCで新しい端末を開く手順は、ディストリビューションによって異なります。
- Linux PCまたはMacの新しいターミナルウィンドウで、ssh-keygenと入力し、 (ssh-keygen)Enterキーを選択します。Windowsのssh-keygen(ssh-keygen)と同様に、LinuxおよびMacバージョンはデフォルトでRSA暗号化を使用します。別の形式の暗号化を使用する場合は、ssh-keygen -t methodと入力し、使用する暗号化の形式(dsa、ecdsa、ed25519、rsaなど)に(dsa, ecdsa, ed25519, rsa)メソッド(method)を置き換えます。
- 次に、新しいSSHキーを保存する場所を決定する必要があります。デフォルトのファイル名と場所は、ターミナルウィンドウに丸括弧で囲まれて表示されます。キーを別の場所に別のファイル名で保存する場合は、ここに新しい場所とファイル名を入力してから、Enterキーを選択します。
- 次に、秘密鍵を暗号化するためにパスフレーズを入力する必要があります(使用する場合)。パスフレーズを2回入力するか、Enterキーを2回選択し(enter)て、パスフレーズを空白のままにします(ただし、これはお勧めしません)。
- この時点で、SSHキーは指定した保存場所に生成され、RSA暗号化にはデフォルトのid_rsaファイル名(公開キーにはid_rsa.pub 、秘密キーには(id_rsa.pub)id_rsa)が使用されます。SSHを使用して接続を確立できるようにするには、公開鍵(id_rsa.pub)をリモートPC、Mac 、またはサーバーに移動する必要があります。
SSHを使用した安全な接続の確立(Making Secure Connections Using SSH)
SSHキーを生成したら、公開キーをリモートPC、 Mac、またはサーバーにコピーする必要があります。これは秘密鍵とリンクし、優先SSHクライアントが通常のパスワードなしで安全なSSH接続を確立できるようにします。たとえば、SSHを使用して別のMacにリモート接続(use SSH to connect to another Mac remotely)できます。
安全なSSH接続は、 (Secure SSH)SSHトンネルを使用して学校や職場のファイアウォールを回避するのに(get around a school or workplace firewall)も役立ちます。SSHを使用して、Raspberry Pi(connect to (and update) a Raspberry Pi)またはその他のLinuxベースのPCおよびサーバーに接続(および更新)することもできます。ただし、 Windows 10でこれを行う場合は、 (Windows 10)OpenSSHサーバーが有効になっていることを確認する必要があります。
How to Generate SSH Keys on Windows, Mac and Linux
Іf you’re looking to connect remotely to a computer, one of thе beѕt and most secure methоds is to use a Secure Shell (SSH) connection. Thiѕ creates an encrypted connection between you and the remote host, ensuring that the data being sent can’t be intеrcepted or mоnitored in аny way.
You can use SSH as a tunnel for other traffic, too, such as a secure VNC connection over SSH. One way you can make your SSH connections even safer is to use SSH keys, which replaces potentially easy-to-crack passwords with a 617-digit encryption key. Here’s how to generate new SSH keys on Windows, Mac, and Linux computers.
What Are SSH Keys?
SSH keys allow you to create secure connections to remote servers or PCs without using a password using the Secure Shell protocol. SSH keys are created in pairs, with a private key and a public key that remain connected—one can’t be used without the other.
In most cases, the public key remains on the remote PC or server to encrypt the connection. The private key is then used to authenticate with that remote device, allowing you to connect and use it without supplying a password.
Public and private SSH keys are two parts of the same whole—without the private key, you can’t authenticate with the public key and establish a connection, and without the public key, the private key is useless. You can generate new SSH keys on Windows, Mac, and Linux, then transfer the public key to the remote device.
The private key is then stored safely on your PC or Mac. It’s important to save a copy of this key securely (for instance, using a password manager). If you lose it, you may not be able to re-establish your remote connections.
It’s also important not to share either your public or private key with others, but especially your private key (or the passphrase that may decrypt it). With the private key at their disposal, a rogue user will be able to establish a connection to your remote device without requiring any additional authentication.
How to Use Windows to Generate SSH Keys
You can use Windows to generate SSH keys using the built-in OpenSSH client or the popular, third-party PuTTY client. If you’d prefer to use a graphical user interface (GUI) to create new SSH keys, PuTTY is the best option. If you’d rather use built-in software, then use OpenSSH (via the Windows PowerShell) instead.
Using OpenSSH via Windows PowerShell
- If you want to use OpenSSH, you’ll need to first check that it’s enabled first. To do this, right-click the Start menu and select Settings.
- In the Settings menu, select Apps > Apps & features > Optional features.
- Look through the Optional features menu for the OpenSSH Client entry. If it isn’t there, select Add a feature.
- Select the OpenSSH Client option, then select Install to install it. Allow a few moments for Windows to install the required software. If you want to use SSH to connect to your Windows PC, make sure to select the OpenSSH Server option, too.
- With OpenSSH installed, right-click the Start menu and select Windows PowerShell (Admin).
- In the new Windows PowerShell window, type ssh-keygen and select the enter key. You can type a new save location and filename for your key at this point, or simply press enter a second time to save your files in the C:\Users\user\.ssh\ folder (replacing user with your own user directory).
The ssh-keygen tool will use RSA encryption by default, but you can switch to another form of encryption by typing ssh-keygen -t method instead, replacing method with one of the available encryption options (dsa, ecdsa, ed25519, rsa).
- Next, you’ll be required to enter a passphrase. This encrypts your private key on your PC and is typically recommended, although it isn’t required. You can use a memorable word or phrase, but you can also use a secure password here instead. Type in your passphrase and select enter to confirm, or simply leave it blank and select enter to leave it blank.
- Once you’ve added your passphrase, Windows will generate the required keys in the C:\Users\user\.ssh\ folder (replacing user with your own user folder name). If you select to use the default filename, the id_rsa.pub file is your public key, while id_rsa (with no extension) is your private key. Once you’ve generated your keys, you’ll need to move your public key (id_rsa.pub) to the .ssh directory on your remote PC, Mac, or server.
Using PuTTY
The well-known PuTTY SSH client is the default client for most Windows users. It includes several other tools for establishing SSH connections, including PuTTYgen, a tool for generating new SSH keys.
- To use PuTTY to generate your SSH keys, download PuTTY for your PC and install it. Once installed, launch PuTTYgen (the included SSH generator tool) from the Start menu, select RSA from the Type of key to generate options, then select Generate. You can also select one of the alternative encryption options, but the steps below may vary.
- Part of the process of generating your keys is to move your mouse randomly. Use your mouse or trackpad to do this in the area immediately below the progress bar until the key pair is generated.
- If you want to add a passphrase to your keys, type this in the Key passphrase and Confirm passphrase boxes, then select Save public key and Save private key to save your keys. You can also select the text in the Public key for pasting into OpenSSH authorized_keys box, then right-click and select Copy to copy and paste it into a file manually.
- With your keys saved, you can then move the public key to your remote PC, Mac, or server. For your private key, you may need to move this into your C:\Users\user\.ssh\ folder (replacing user with your correct user directory) to use it with your preferred SSH client.
How to Generate SSH Keys on Linux or Mac
OpenSSH is the gold standard set of tools for SSH management and, just like the Windows version, the ssh-keygen tool remains the best way to generate new SSH keys on Mac or Linux computers.
As a consequence, GUI tools for generating SSH keys are rare and not typically recommended. As the OpenSSH tools are included with all Mac computers and with almost all Linux distributions, the steps below should work for both platforms.
- To begin, open a new terminal window on your Linux PC or Mac. If you want to use your Mac to generate SSH keys, you can launch the Terminal app using the Launchpad. The steps for opening a new terminal on a Linux PC will vary, depending on your distribution.
- In the new terminal window on your Linux PC or Mac, type ssh-keygen and select the enter key. As with ssh-keygen on Windows, the Linux and Mac version defaults to using RSA encryption. If you’d prefer to use another form of encryption, type ssh-keygen -t method, replacing method with the form of encryption you wish to use (eg. dsa, ecdsa, ed25519, rsa).
- You’ll next need to determine where you’d like to save the new SSH keys—the default file name and location will be shown in round brackets in the terminal window. If you want to save your keys somewhere else and with a different filename, type a new location and file name here, then select the enter key.
- Next, you’ll need to type a passphrase to encrypt your private key (if you’d like to use one). Type your passphrase twice, or select enter twice to leave the passphrase blank (although this isn’t recommended).
- At this point, your SSH keys will be generated in the save location you specified and using the default id_rsa filename for RSA encryption (id_rsa.pub for the public key and id_rsa for the private key). You’ll need to move your public key (id_rsa.pub) to your remote PC, Mac, or server to be able to establish your connection using SSH.
Making Secure Connections Using SSH
Once you’ve generated your SSH keys, you’ll need to make sure to copy the public key to your remote PC, Mac, or server. This links with your private key, which allows your preferred SSH client to establish secure SSH connections without a typical password. For instance, you could use SSH to connect to another Mac remotely.
Secure SSH connections can also help you get around a school or workplace firewall using an SSH tunnel. You can also use SSH to connect to (and update) a Raspberry Pi or other Linux-based PCs and servers. You’ll need to make sure you enable the OpenSSH server if you want to do this on Windows 10, however.