GameServerManagers / LinuxGSM

The command-line tool for quick, simple deployment and management of Linux dedicated game servers.
https://linuxgsm.com
MIT License
4.32k stars 821 forks source link

[Guide]: Steamcmd Username + Steam Guard via Smartphone (compatible with LinuxGSM, no plaintext password) w/ securely saved credentials #4117

Open codefaux opened 1 year ago

codefaux commented 1 year ago

User story

As a server admin, I wanted to install a Terraria server. I didn't have a second account, didn't want plaintext password, and am using SteamGuard via Smartphone. This is listed as unsupported, but I accomplished it without a single extra tool. Being security-minded, I refuse to leave plaintext credentials, but obviously desire all functionality provided by LGSM.

Game

Terraria, 7 Days, Satisfactory, Proj. Zomboid, Minecraft Bedrock, probably more later

Linux distro

Other

Command

command: start, command: stop, command: restart, command: monitor, command: details, command: update, command: validate, command: console, command: install

Further information

First, requirements:

OK, so here's what I did. I imagine this could be adapted to any server requiring login. All commands are AS DESIRED GAME SERVER USER 1- Download and install terraria lgsm server per Instructions step 1 and step 2 2- Run ./terrariaserver install to create base folders/config files, will fail due to missing login image

3- Run SteamCMD -- possibly must use ~/.steam/steamcmd/steamcmd.sh (* This is as it was on my system ie ArchLinux, not sure if it'll be identical everywhere -- may need to use this version instead of package manager version due to saved data location? Unable to verify, need testers!) 4- Initiate login -- in my case using SteamGuard -- login <username> 4b- Complete login securely, aka provide password and authenticate via smartphone 5- Enable stored credential login when using 'login' command without password (Advised/explained by SteamCMD in 'help login'! Read this to understand the mechanism!) via running @NoPromptForPassword 1 5b- Exit SteamCMD exit image

6- Edit server config; provide username, LEAVE PASSWORD EMPTY nano lgsm/config-default/config-lgsm/terrariaserver/_default.cfg -- NOTE: It SAYS to edit a different file, but I find that when I do, the lgsm script overwrites it with the default when I run install. Thus, I edit the stored default, which then copies itself to the proper location. Any input would be appreciated. NOTE2: No, I don't wish to discuss my preference of console editor. image

7- Install server, update/verify/etc as usual! image image

Relevant log output

(Provided as screenshots)

Steps to reproduce

...also provided above, my bad

dgibbs64 commented 1 year ago

NoPromptForPassword looks like it might be a useful setting for storing steamcmd credentials rather than the traditional method. I think this would be a good feature to add.

dgibbs64 commented 1 year ago

I have got the basic concept working so the no password feature works. However, I need to figure out how to implement on the installer and auto installer. As well as what to do if updates fail because of loss of creds.