Justasic / Minecraft-SSHD

An SSHD daemon embedded in a Bukkit/Spigot, BungeeCord, and Sponge plugin.
Apache License 2.0
23 stars 4 forks source link
bukkit bukkit-plugin bungeecord bungeecord-plugin console spigot spigot-plugin sponge sponge-plugin sshd

Minecraft-SSHD

Build Status Release GitHub license

diskover

Have you ever wished you could remotely access your server's admin console without having to setup a complex remote access system? Now you can with Minecraft-SSHD!

Minecraft-SSHD securely exposes your Minecraft admin console and the server filesystem using the SSH protocol - the same protocol that serves as the secure foundation for nearly all remote server administration.

Why should I use Minecraft-SSHD?

Note: By default, only public key authentication is enabled. This is the most secure authentication mode! Setting a username and password will make your server less secure.

Screenshots

console

session

Setting Up Public Key Authentication

Setting up public key authentication with SSH requires first generating a public and private key pair and then installing just the public key on your Spigot server. This plugin supports all modern SSH key algoritms as OpenSSH. You can paste as many public keys from the methods below into each user's authorization file if they have multiple private keys. You can read this guide from ssh.com if you want a better explanation on different key files.

Generating New Keys

On Windows

  1. Ensure Putty is installed and open up puttygen (you can search for it in start search).
  2. Click Generate and follow the directions.
  3. When it finishes, set your key comment (if you like) and copy the text from the big Public key for pasting into OpenSSH authorized_keys file
  4. Create a new file inside of the plugins/SSHD/authorized_users folder and name the file just the username (example: justasic, there should NOT be a file extension or authentication does not work).
  5. Paste the key you copied from step 3 into the file you just created.
  6. SSH into the server and see if your key works

On Linux/OS X

  1. Open a terminal and run ssh-keygen then follow the prompts.
  2. Copy the contents of your id_<algorithm>.pub file (example: if your key was generated with rsa, it will be named id_rsa.pub). This file is usually located in /home/YOURUSERNAME/.ssh/
  3. Paste the contents of the .pub file into a new file inside the plugins/SSHD/authorized_users folder and name the file just the username that the user will use to login with (example: justasic, there should NOT be a file extension or authentication does not work).

Using existing keys

On Windows

  1. Ensure Putty is installed and open up puttygen (you can search for it in start search).
  2. Click Conversions then click Import Key and select your .ppk file.
  3. Copy the text from the big Public key for pasting into OpenSSH authorized_keys file
  4. Create a new file inside of the plugins/SSHD/authorized_users folder and name the file just the username (example: justasic, there should NOT be a file extension or authentication does not work).
  5. Paste the key you copied from step 3 into the file you just created.
  6. SSH into the server and see if your key works

On Linux/OS X

  1. Copy the contents of your id_<algorithm>.pub file (example: if your key was generated with rsa, it will be named id_rsa.pub). This file is usually located in /home/YOURUSERNAME/.ssh/
  2. Paste the contents of the .pub file into a new file inside the plugins/SSHD/authorized_users folder and name the file just the username that the user will use to login with (example: justasic, there should NOT be a file extension or authentication does not work).

Plugin Usage

Commands

/mkpasswd <hash|help> <password>

mkpasswd supports the following hash algorithms:

Permissions

sshd.mkpasswd - Checks if the in-game user has access to run the mkpasswd command.

Minecraft-SSHD uses cryptographic certificates or a secure username and password to verify remote access.

Source Code

Get the source on GitHub

Our Discord

https://discord.gg/DtrJFn