From 3ac3cfeb793a01422309dde2451b578d7c794747 Mon Sep 17 00:00:00 2001 From: YemBot Date: Mon, 1 Jun 2026 15:07:17 -0700 Subject: [PATCH 01/10] Update README.md Remove references to past outages --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 618599d..96e30e2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,7 @@ -***Globus Data Transfer outage scheduled for February 4th 2026 09:00-13:00 PST. [More details here](changelog.md)*** Welcome to the SLAC Shared Scientific Data Facility (S3DF) at SLAC National Accelerator Laboratory. -**Upcoming Maintenance on S3DF DTN nodes: 2026-04-21 10:00AM to 11:00AM PT. [More details here](changelog.md)** - S3DF is a compute, storage, and network architecture designed to support massive scale analytics required by SLAC experimental facilities and programs, including LCLS/LCLS-II, Vera C. Rubin Observatory, UED, and the Stanford-SLAC cryoEM Center (S2C2). S3DF provides platforms for deploying scientific applications, high performance compute nodes for large scale compute tasks, and a concurrent network filesystem and tape library for storing large volumes of data. S3DF aims to meet the increasing computing infrastructure resources that SLAC users and groups require to conduct their science experiments and analysis. From 3cda37f278f9214e9c24aab714dbcaea55cc4d68 Mon Sep 17 00:00:00 2001 From: YemBot Date: Mon, 15 Jun 2026 12:48:25 -0700 Subject: [PATCH 02/10] Update changelog.md --- changelog.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/changelog.md b/changelog.md index 766a98d..abc9da7 100644 --- a/changelog.md +++ b/changelog.md @@ -8,11 +8,23 @@ |When |Duration | What | | --- | --- | --- | +| June 30th 2026 | 10:00-12:00 PDT (planned) | Disabling legacy Unix authentication for public-facing S3DF bastion services. Once complete, **SLAC Account with MFA will be required for s3dflogin.slac.stanford.edu, s3dfdtn.slac.stanford.edu and NoMachine s3dfnx.slac.stanford.edu.** + +If you are unsure of your SLAC Account status, use the following link to check: +https://ad-account.slac.stanford.edu +The app will give you the option of provisioning your SLAC Account OR report “You already have SSO (windows) account”. + +You can test our SSH MFA workflow via the s3dflogin-mfa.slac.stanford.edu pool. We also provide an MFA-enabled SSH key management service. Full details can be found on this page: https://s3df.slac.stanford.edu/#/sshmfa_user +S3DF web services with central authentication already use MFA - this includes https://s3df.slac.stanford.edu/ondemand and https://coact.slac.stanford.edu . + +If you are unable to authenticate with MFA it’s possible your SLAC account may require reactivation or a password reset. +Please send email to s3df-help@slac.stanford.edu for assistance. ### Past |When |Duration | What | | --- | --- | --- | +| June 13th 2026 08:40-10:00 PDT | 1hr 20mins (unplanned) | Weka filesystem for k8s entered a degraded state and stopped serving I/Os. Support team succesfully recovered the cluster. | April 21st 2026 10:00-11:00 PDT | 1 hr (planned) | DTN nodes s3dfdtn.slac.stanford.edu, sdfdtn[001-006] will be rebooted during the maintenance window to apply security updates. This may interrupt currently-running transfers. Reboots will be done in batches to minimize disruption. | February 4th 2026 | 9:00-13:00 PST (planned) | Shutdown the Globus node  “sdfdtn004” for a network card upgrade. | March 18th 2026 11:00-12:00 PDT | 1 hr (planned) | DNS maintenance for s3dflogin s3dflogin-mfa s3dfdtn From f5dc3998c49efe9dfb9eeffb0efad1dbaa4e9349 Mon Sep 17 00:00:00 2001 From: YemBot Date: Mon, 15 Jun 2026 15:50:09 -0700 Subject: [PATCH 03/10] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 96e30e2..2659d21 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ Welcome to the SLAC Shared Scientific Data Facility (S3DF) at SLAC National Accelerator Laboratory. +**Starting on June 30th 2026, Multi-Factor Authentication with SLAC Account will be required for login bastion, DTN bastion and NoMachine services. [More details here](changelog.md)** + + S3DF is a compute, storage, and network architecture designed to support massive scale analytics required by SLAC experimental facilities and programs, including LCLS/LCLS-II, Vera C. Rubin Observatory, UED, and the Stanford-SLAC cryoEM Center (S2C2). S3DF provides platforms for deploying scientific applications, high performance compute nodes for large scale compute tasks, and a concurrent network filesystem and tape library for storing large volumes of data. S3DF aims to meet the increasing computing infrastructure resources that SLAC users and groups require to conduct their science experiments and analysis. From d3a7d4621e9e705c7939ede33f88540f69c99786 Mon Sep 17 00:00:00 2001 From: Victor Elmir Date: Tue, 30 Jun 2026 10:19:02 -0700 Subject: [PATCH 04/10] Removed references to sdflogin-mfa hosts --- sshmfa_user.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sshmfa_user.md b/sshmfa_user.md index dd7ea72..8a2a991 100644 --- a/sshmfa_user.md +++ b/sshmfa_user.md @@ -2,15 +2,13 @@ ## SSH and Multi-Factor -Multi-Factor Authentication (MFA) provides an additional layer of security for users. As a preliminary rollout, MFA has been configured on the `s3dflogin-mfa.slac.stanford.edu` bastion hosts. **A SLAC Account is required**. There are two methods to SSH into S3DF using a SLAC Account - using a password and MFA challenge, or via centrally managed SSH Keys. - -?> The legacy SSH using SLAC Unix Computer accounts via `s3dflogin.slac.stanford.edu` will still be available as we introduce SSH with SLAC Accounts. **Once all S3DF users have been migrated to SLAC Accounts, we will deprecate all SLAC Unix SSH logon services and SLAC Accounts will be required for all SSH bastion logins.** `s3dflogin-mfa.slac.stanford.edu` is the current bastion name for SSH with SLAC Accounts until we complete this transition. +Multi-Factor Authentication (MFA) provides an additional layer of security for users. **A SLAC Account is required**. There are two methods to SSH into S3DF using a SLAC Account - using a password and MFA challenge, or via centrally managed SSH Keys. ## Passwords with MFA :id=passwords ?> If you do not already have Duo configured, please see SLAC's documentation [here](https://it.slac.stanford.edu/support/KB0010216) -1. When using password login, please use your SLAC Account (formerly "SLAC Windows account") credentials when connecting with SSH to `s3dflogin-mfa.slac.stanford.edu`. +1. When using password login, please use your SLAC Account (formerly "SLAC Windows account") credentials when connecting with SSH to `s3dflogin.slac.stanford.edu`. 2. You will be prompted for your SLAC Account password @@ -24,7 +22,7 @@ Multi-Factor Authentication (MFA) provides an additional layer of security for u ## SSH Keys with MFA :id=sshkeys -To use SSH key login, public keys must be registered with the S3DF key management system in order to be used with `s3dflogin-mfa.slac.stanford.edu` bastion hosts. +To use SSH key login, public keys must be registered with the S3DF key management system in order to be used with `s3dflogin.slac.stanford.edu` bastion hosts. An SSH key can be used to log in as long as it is **valid**. * A **valid** key has been refreshed in the last **25 hours** From e8e25e03ee722e8a7885421461d291e5f0efce21 Mon Sep 17 00:00:00 2001 From: Victor Elmir Date: Tue, 30 Jun 2026 10:19:48 -0700 Subject: [PATCH 05/10] Removed references to sdflogin-mfa hosts --- sshmfa_user.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sshmfa_user.md b/sshmfa_user.md index dd7ea72..8a2a991 100644 --- a/sshmfa_user.md +++ b/sshmfa_user.md @@ -2,15 +2,13 @@ ## SSH and Multi-Factor -Multi-Factor Authentication (MFA) provides an additional layer of security for users. As a preliminary rollout, MFA has been configured on the `s3dflogin-mfa.slac.stanford.edu` bastion hosts. **A SLAC Account is required**. There are two methods to SSH into S3DF using a SLAC Account - using a password and MFA challenge, or via centrally managed SSH Keys. - -?> The legacy SSH using SLAC Unix Computer accounts via `s3dflogin.slac.stanford.edu` will still be available as we introduce SSH with SLAC Accounts. **Once all S3DF users have been migrated to SLAC Accounts, we will deprecate all SLAC Unix SSH logon services and SLAC Accounts will be required for all SSH bastion logins.** `s3dflogin-mfa.slac.stanford.edu` is the current bastion name for SSH with SLAC Accounts until we complete this transition. +Multi-Factor Authentication (MFA) provides an additional layer of security for users. **A SLAC Account is required**. There are two methods to SSH into S3DF using a SLAC Account - using a password and MFA challenge, or via centrally managed SSH Keys. ## Passwords with MFA :id=passwords ?> If you do not already have Duo configured, please see SLAC's documentation [here](https://it.slac.stanford.edu/support/KB0010216) -1. When using password login, please use your SLAC Account (formerly "SLAC Windows account") credentials when connecting with SSH to `s3dflogin-mfa.slac.stanford.edu`. +1. When using password login, please use your SLAC Account (formerly "SLAC Windows account") credentials when connecting with SSH to `s3dflogin.slac.stanford.edu`. 2. You will be prompted for your SLAC Account password @@ -24,7 +22,7 @@ Multi-Factor Authentication (MFA) provides an additional layer of security for u ## SSH Keys with MFA :id=sshkeys -To use SSH key login, public keys must be registered with the S3DF key management system in order to be used with `s3dflogin-mfa.slac.stanford.edu` bastion hosts. +To use SSH key login, public keys must be registered with the S3DF key management system in order to be used with `s3dflogin.slac.stanford.edu` bastion hosts. An SSH key can be used to log in as long as it is **valid**. * A **valid** key has been refreshed in the last **25 hours** From 4d1b96186de18f8e225d6c209ad574ef82c25cd5 Mon Sep 17 00:00:00 2001 From: Victor Elmir Date: Tue, 30 Jun 2026 10:43:38 -0700 Subject: [PATCH 06/10] Adding docs for NX and MFA --- assets/nx_mfa.png | Bin 0 -> 58628 bytes sshmfa_user.md | 10 ++++++++++ 2 files changed, 10 insertions(+) create mode 100644 assets/nx_mfa.png diff --git a/assets/nx_mfa.png b/assets/nx_mfa.png new file mode 100644 index 0000000000000000000000000000000000000000..5c207d84a35b0515c344c977ad18ac4e03ec561e GIT binary patch literal 58628 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 Date: Tue, 30 Jun 2026 14:38:00 -0700 Subject: [PATCH 07/10] Updated remaining references to s3dflogin-mfa --- README.md | 2 +- access.md | 6 +++--- beginnerguide.md | 2 +- interactive-compute.md | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2659d21..e024163 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ The table below lists various S3DF resources and where they can be found. | Resource | Access Point | | :--- | :--- | -| SSH | s3dflogin-mfa.slac.stanford.edu | +| SSH | s3dflogin.slac.stanford.edu | | SSH Key Service | https://s3df-sshkeys.slac.stanford.edu/ | | NoMachine | s3dfnx.slac.stanford.edu | | OnDemand | [https://s3df.slac.stanford.edu/ondemand](/ondemand ':ignore') | diff --git a/access.md b/access.md index 8008b92..637a1ff 100644 --- a/access.md +++ b/access.md @@ -12,18 +12,18 @@ In order to access S3DF, you must first obtain a [SLAC Account](accounts.md). Yo ## SSH You can connect using any SSH client, such as [OpenSSH](www.openssh.com) or [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/), -to connect to the S3DF load-balanced bastion pool `s3dflogin-mfa.slac.stanford.edu`. +to connect to the S3DF load-balanced bastion pool `s3dflogin.slac.stanford.edu`. These hosts require multi-factor authentication; for more information on working with MFA systems, please see [SSH and MFA](sshmfa_user.md). Example: ``` -ssh @s3dflogin-mfa.slac.stanford.edu +ssh @s3dflogin.slac.stanford.edu ``` ?> Note that these nodes do not have access to storage (except for your home directory). From these bastion hosts, you should hop to an [Interactive Node](interactive-compute.md#interactive-pools) to access S3DF batch compute and storage. -?> Windows users may see an error message about a "*Corrupted MAC on input*" or "*message authentication code incorrect.*" The workaround is to add "*-m hmac-sha2-512*" to the ssh command, i.e. `ssh -m hmac-sha2-512 @s3dflogin-mfa.slac.stanford.edu` +?> Windows users may see an error message about a "*Corrupted MAC on input*" or "*message authentication code incorrect.*" The workaround is to add "*-m hmac-sha2-512*" to the ssh command, i.e. `ssh -m hmac-sha2-512 @s3dflogin.slac.stanford.edu` ## NoMachine diff --git a/beginnerguide.md b/beginnerguide.md index 064ddd1..f3f1919 100644 --- a/beginnerguide.md +++ b/beginnerguide.md @@ -20,7 +20,7 @@ This example provides a clear, step-by-step workflow for running software on S3D To start, connect to a bastion node using the following command: - ssh username@s3dflogin-mfa.slac.stanford.edu + ssh username@s3dflogin.slac.stanford.edu ### Connect to an Interactive Node diff --git a/interactive-compute.md b/interactive-compute.md index eb0c274..6803efb 100644 --- a/interactive-compute.md +++ b/interactive-compute.md @@ -6,7 +6,7 @@ In order to access compute and storage resources in S3DF, you will need to log onto our interactive nodes. After, login to our bastion hosts either via a [ssh terminal session or via NoMachine](access.md), you will then need to ssh to one of the interactive pools to access the data, build/debug your code, run simple analyses, or submit jobs to the [batch system](batch-compute.md). If your organization has acquired dedicated resources for the interactive pools, use them; otherwise, you can connect to the S3DF shared interactive pool. -?> Note: After log in into our bastion hosts with `ssh s3dflogin-mfa.slac.stanford.edu`, you will need to then need to log into our interactive nodes to access batch compute and data. You can do this via `ssh ` within your ssh session (same terminal) to get into the bastion hosts. +?> Note: After log in into our bastion hosts with `ssh s3dflogin.slac.stanford.edu`, you will need to then need to log into our interactive nodes to access batch compute and data. You can do this via `ssh ` within your ssh session (same terminal) to get into the bastion hosts. The currently available pools are shown in the table below (The facility can be any organization, program, project, or group that interfaces with S3DF to acquire resources). From 486938b1884ec820982d32fd8075d5f69bdd3fbe Mon Sep 17 00:00:00 2001 From: velmirslac Date: Tue, 30 Jun 2026 14:39:14 -0700 Subject: [PATCH 08/10] Changed NoMachine to reference SLAC account --- access.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/access.md b/access.md index 637a1ff..428b77a 100644 --- a/access.md +++ b/access.md @@ -52,7 +52,7 @@ The S3DF NoMachine cluster can be accessed via: The S3DF NoMachine cluster can also be accessed in a browser by going to the following link: [https://s3dfnx.slac.stanford.edu:4443/](https://s3dfnx.slac.stanford.edu:4443/) - Enter your SLAC UNIX credentials to access the S3DF NoMachine web client. + Enter your SLAC account credentials to access the S3DF NoMachine web client. ?> The login method for S3DF NoMachine connections will be updated to use SLAC Account Single Sign-On (SSO) and Duo Multi-factor Authentication in the near future. For more information about SLAC SSO and MFA, see: [https://it.slac.stanford.edu/support/KB0010216](https://it.slac.stanford.edu/support/KB0010216) From dfe75e585f5bffb5dd2e5b73b8a4a23976971aee Mon Sep 17 00:00:00 2001 From: velmirslac Date: Tue, 30 Jun 2026 14:49:58 -0700 Subject: [PATCH 09/10] Added ProxyJump examples --- access.md | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/access.md b/access.md index 428b77a..e99d392 100644 --- a/access.md +++ b/access.md @@ -13,8 +13,7 @@ In order to access S3DF, you must first obtain a [SLAC Account](accounts.md). Yo You can connect using any SSH client, such as [OpenSSH](www.openssh.com) or [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/), to connect to the S3DF load-balanced bastion pool `s3dflogin.slac.stanford.edu`. -These hosts require multi-factor authentication; for more information on working with MFA systems, -please see [SSH and MFA](sshmfa_user.md). +These hosts require multi-factor authentication; for more information on working with MFA systems, please see [SSH and MFA](sshmfa_user.md). Example: ``` @@ -25,6 +24,33 @@ ssh @s3dflogin.slac.stanford.edu ?> Windows users may see an error message about a "*Corrupted MAC on input*" or "*message authentication code incorrect.*" The workaround is to add "*-m hmac-sha2-512*" to the ssh command, i.e. `ssh -m hmac-sha2-512 @s3dflogin.slac.stanford.edu` +### Connecting Directly to an Interactive Node +If you'd like to connect directly to an interactice node in one step, you can use the login node as a "jump proxy." + +#### On the Command Line +On the command line, it would look like this: +```bash +ssh -J s3dflogin.slac.stanford.edu iana +``` +* The `-J` sets `s3dflogin.slac.stanford.edu` as the jump proxy host. +* `iana` is the target node relative to the jump proxy. +On execution, this command opens a connection to `s3dflogin.slac.stanford.edu` as normal, using MFA as normal. Then, instead of showing a terminal on the login node, a connection is immediately opened to the target node, `iana`. + +#### In your SSH Config +To configure a jump host in your SSH config (typically `~/.ssh/config`), you can define hosts like this: + +```ini +Host s3dflogin + Hostname s3dflogin.slac.stanford.edu +``` + +You can then define additional hosts and reference the jump proxy to "jump through to." +```ini +Host iana + Hostname iana + ProxyJump s3dflogin +``` +With these two entries in place, running `ssh iana` on your local machine will establish the proxy connection to `s3dflogin.slac.stanford.edu` and then connect to `iana` from there. Credentials will be prompted for as usual. ## NoMachine From 585e0343c0852ac8f65ed544c978fb4a0fa259a5 Mon Sep 17 00:00:00 2001 From: velmirslac Date: Tue, 30 Jun 2026 15:07:46 -0700 Subject: [PATCH 10/10] removed `bash` code block tag, highlighting is too hard to read --- access.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/access.md b/access.md index e99d392..98d84e2 100644 --- a/access.md +++ b/access.md @@ -29,7 +29,7 @@ If you'd like to connect directly to an interactice node in one step, you can us #### On the Command Line On the command line, it would look like this: -```bash +``` ssh -J s3dflogin.slac.stanford.edu iana ``` * The `-J` sets `s3dflogin.slac.stanford.edu` as the jump proxy host.