Linuxコマンド一覧

sshコマンド|別のマシンにログインする

__ __ _ _____
\ \ / /__| |_|_ _|__ _ __ _ __ ___
\ \ /\ / / _ \ '_ \| |/ _ \ '__| '_ ` _ \
\ V V / __/ |_) | | __/ | | | | | |
\_/\_/ \___|_.__/|_|\___|_| |_| |_| |_
 
ssh を試すためのサンドボックスです。実機のファイルには影響しません。
user@webterm:~/project$
 

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つだけ実行する

ホストの後ろにコマンドを書くと、ログインせずにその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別のサイト

>_WEBTERM LEARN

WebTerm Learn|1つのコマンドから、使える状態へ

コマンドは単体で覚えるより、実際の作業の流れの中で使うほうが身につきます。順番に積み上げていくコースがあります。

コースを見る

関連するコマンド

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

よくある質問

パスワードではなく鍵を使うのはなぜですか?
パスワードは総当たりで破られますが、鍵は手元から出さずに本人確認ができるからです。多くのサーバーはパスワードでのログインを最初から禁止しています。
Permission denied (publickey) と出ます。
こちらの鍵がサーバー側に登録されていない、という意味です。`ssh-keygen` で鍵を作り、`ssh-copy-id` で公開鍵を相手に置けば入れるようになります。
初回に「Are you sure you want to continue connecting」と聞かれるのは何ですか?
つなぎ先のホスト鍵の確認です。yes と答えると `~/.ssh/known_hosts` に記録され、次からは聞かれません。2回目以降に警告が出たときは、つなぎ先が入れ替わっている可能性があります。
リモートから戻るにはどうしますか?
`exit` です。Ctrl+D でも同じように閉じます。
ポートやユーザー名を変えるには?
ユーザーは `user@host` の形で、ポートは `-p 2222` のように指定します。毎回同じなら `~/.ssh/config` に書いておくと `ssh myserver` だけで済みます。