ssh は離れたサーバーにログインするコマンドです。公開鍵の作り方と渡し方、Permission denied (publickey) の意味、コマンドを1つだけ実行する書き方を、ブラウザ上のターミナルで打ちながら確認できます。
最終更新: 2026-09-06
ssh [オプション] [ユーザー@]ホスト [コマンド]
ホストにログインします。 最後にコマンドを書くと、それだけを実行して戻ってきます。
$ ssh deploy@server.example.com
deploy@server.example.com: Permission denied (publickey).
断られました。 これは「あなたの鍵を知りません」という意味です。 サーバー側に自分の公開鍵を登録するところから始めます。
まず手元で鍵を作ります。
$ ssh-keygen -t ed25519
~/.ssh/id_ed25519(秘密鍵)と ~/.ssh/id_ed25519.pub(公開鍵)の2つができます。
秘密鍵は手元から出しません。
相手に渡すのは .pub が付いたほうだけです。
$ ssh-copy-id deploy@server.example.com
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/id_ed25519.pub"
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'deploy@server.example.com'"
and check to make sure that only the key(s) you wanted were added.
公開鍵がサーバーの ~/.ssh/authorized_keys に追加されました。
ホストの後ろにコマンドを書くと、ログインせずにその1つだけを実行します。
$ ssh deploy@server.example.com df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 5.0G 14G 27% /
「ディスクの空きだけ見たい」「ログの末尾だけ見たい」といった用事は、この形が速いです。
コマンドを付けずに打つと、そのままログインします。
$ ssh deploy@server.example.com
Welcome to Ubuntu ... と最終ログイン日時が出れば成功です。
ここから先に打つコマンドは、すべてリモートのマシンで動きます。
$ pwd
/home/deploy
手元ではなく、サーバー側のホームディレクトリにいます。
用事が済んだら exit で戻ります。
$ exit
Connection to server.example.com closed.
$ pwd
/home/user/project
同じ鍵で、ファイルの受け渡しもできます。
$ scp app.tar.gz deploy@server.example.com:/home/deploy/
app.tar.gz 100% 8 0.0KB/s 00:00
送れたかどうかは、リモートで ls を1つ実行すれば分かります。
$ ssh deploy@server.example.com ls
app.tar.gz
ssh は、目の前に無いマシンで作業するときに打つコマンドです。
| 場面 | 打ち方 |
|---|---|
| サーバーにログインする | ssh deploy@server.example.com |
| 様子だけ見て戻る | ssh deploy@server.example.com df -h |
| ポートが違うサーバーにつなぐ | ssh -p 2222 deploy@server.example.com |
| 鍵を指定してつなぐ | ssh -i ~/.ssh/id_ed25519 deploy@server.example.com |
| ファイルを送る | scp app.tar.gz deploy@server.example.com:/home/deploy/ |
Permission denied (publickey) は、鍵が登録されていないという意味です。
パスワードを間違えたわけではありません。
ssh-copy-id で公開鍵を置いたか、置いた先のユーザーが合っているかを確かめてください。
初回だけホスト鍵を確認されます。
The authenticity of host 'server.example.com' can't be established.
ED25519 key fingerprint is SHA256:3f8ad0d23f8a....
Are you sure you want to continue connecting (yes/no)?
yes と答えると ~/.ssh/known_hosts に記録され、次からは聞かれません。
このページのターミナルは、この確認を済ませた状態から始めています。
なお、2回目以降に警告が出たときは無視しないでください。
つなぎ先が入れ替わっている可能性があります。
秘密鍵は渡さないでください。
相手に置くのは .pub の付いた公開鍵だけです。
秘密鍵を送ってしまったら、その鍵は作り直します。
つながらないときは、まず届いているかを確かめます。
$ ssh nosuchuser@unreachable.host
ssh: connect to host unreachable.host port 22: Connection timed out
この形のエラーは鍵の問題ではありません。 ホスト名の綴り、ポート番号、ネットワークの経路を順に疑ってください。
webterm.appこのサイト
ターミナル応用
特定場面で役立つコマンドを学ぶ
learn.webterm.app別のサイト

scp / ssh-keygen / ssh-copy-id / exit